|
@@ -0,0 +1,58 @@
|
|
|
+package functions
|
|
|
+
|
|
|
+import (
|
|
|
+ "encoding/json"
|
|
|
+ "log"
|
|
|
+ "net/http"
|
|
|
+
|
|
|
+ "github.com/gravitl/netmaker/models"
|
|
|
+ "github.com/gravitl/netmaker/schema"
|
|
|
+)
|
|
|
+
|
|
|
+// CreateAccessToken - creates an access token for a user
|
|
|
+func CreateAccessToken(payload *schema.UserAccessToken) *models.SuccessfulUserLoginResponse {
|
|
|
+ res := request[models.SuccessResponse](http.MethodPost, "/api/v1/users/access_token", payload)
|
|
|
+ if res.Code != http.StatusOK {
|
|
|
+ log.Fatalf("Error creating access token: %s", res.Message)
|
|
|
+ }
|
|
|
+
|
|
|
+ var token models.SuccessfulUserLoginResponse
|
|
|
+ responseBytes, err := json.Marshal(res.Response)
|
|
|
+ if err != nil {
|
|
|
+ log.Fatalf("Error marshaling response: %v", err)
|
|
|
+ }
|
|
|
+
|
|
|
+ if err := json.Unmarshal(responseBytes, &token); err != nil {
|
|
|
+ log.Fatalf("Error unmarshaling token: %v", err)
|
|
|
+ }
|
|
|
+
|
|
|
+ return &token
|
|
|
+}
|
|
|
+
|
|
|
+// GetAccessToken - fetch all access tokens per user
|
|
|
+func GetAccessToken(userName string) []schema.UserAccessToken {
|
|
|
+ res := request[models.SuccessResponse](http.MethodGet, "/api/v1/users/access_token?username="+userName, nil)
|
|
|
+ if res.Code != http.StatusOK {
|
|
|
+ log.Fatalf("Error getting access token: %s", res.Message)
|
|
|
+ }
|
|
|
+
|
|
|
+ var tokens []schema.UserAccessToken
|
|
|
+ responseBytes, err := json.Marshal(res.Response)
|
|
|
+ if err != nil {
|
|
|
+ log.Fatalf("Error marshaling response: %v", err)
|
|
|
+ }
|
|
|
+
|
|
|
+ if err := json.Unmarshal(responseBytes, &tokens); err != nil {
|
|
|
+ log.Fatalf("Error unmarshaling tokens: %v", err)
|
|
|
+ }
|
|
|
+
|
|
|
+ return tokens
|
|
|
+}
|
|
|
+
|
|
|
+// DeleteAccessToken - delete an access token
|
|
|
+func DeleteAccessToken(id string) {
|
|
|
+ res := request[models.SuccessResponse](http.MethodDelete, "/api/v1/users/access_token?id="+id, nil)
|
|
|
+ if res.Code != http.StatusOK {
|
|
|
+ log.Fatalf("Error deleting access token: %s", res.Message)
|
|
|
+ }
|
|
|
+}
|