access_tokens.go 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. package functions
  2. import (
  3. "encoding/json"
  4. "log"
  5. "net/http"
  6. "github.com/gravitl/netmaker/models"
  7. )
  8. // CreateAccessToken - creates an access token for a user
  9. func CreateAccessToken(payload *models.UserAccessToken) *models.SuccessfulUserLoginResponse {
  10. res := request[models.SuccessResponse](http.MethodPost, "/api/v1/users/access_token", payload)
  11. if res.Code != http.StatusOK {
  12. log.Fatalf("Error creating access token: %s", res.Message)
  13. }
  14. var token models.SuccessfulUserLoginResponse
  15. responseBytes, err := json.Marshal(res.Response)
  16. if err != nil {
  17. log.Fatalf("Error marshaling response: %v", err)
  18. }
  19. if err := json.Unmarshal(responseBytes, &token); err != nil {
  20. log.Fatalf("Error unmarshaling token: %v", err)
  21. }
  22. return &token
  23. }
  24. // GetAccessToken - fetch all access tokens per user
  25. func GetAccessToken(userName string) []models.UserAccessToken {
  26. res := request[models.SuccessResponse](http.MethodGet, "/api/v1/users/access_token?username="+userName, nil)
  27. if res.Code != http.StatusOK {
  28. log.Fatalf("Error getting access token: %s", res.Message)
  29. }
  30. var tokens []models.UserAccessToken
  31. responseBytes, err := json.Marshal(res.Response)
  32. if err != nil {
  33. log.Fatalf("Error marshaling response: %v", err)
  34. }
  35. if err := json.Unmarshal(responseBytes, &tokens); err != nil {
  36. log.Fatalf("Error unmarshaling tokens: %v", err)
  37. }
  38. return tokens
  39. }
  40. // DeleteAccessToken - delete an access token
  41. func DeleteAccessToken(id string) {
  42. res := request[models.SuccessResponse](http.MethodDelete, "/api/v1/users/access_token?id="+id, nil)
  43. if res.Code != http.StatusOK {
  44. log.Fatalf("Error deleting access token: %s", res.Message)
  45. }
  46. }