access_tokens.go 1.7 KB

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