| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 | package functionsimport (	"encoding/json"	"fmt"	"net/http"	"github.com/gravitl/netmaker/models")// HasAdmin - check if server has an admin userfunc HasAdmin() *bool {	return request[bool](http.MethodGet, "/api/users/adm/hasadmin", nil)}// CreateUser - create a userfunc CreateUser(payload *models.User) *models.User {	return request[models.User](http.MethodPost, "/api/users/"+payload.UserName, payload)}// UpdateUser - update a userfunc UpdateUser(payload *models.User) *models.User {	return request[models.User](http.MethodPut, "/api/users/"+payload.UserName, payload)}// DeleteUser - delete a userfunc DeleteUser(username string) *string {	return request[string](http.MethodDelete, "/api/users/"+username, nil)}// GetUser - fetch a single userfunc GetUser(username string) *models.User {	return request[models.User](http.MethodGet, "/api/users/"+username, nil)}// ListUsers - fetch all usersfunc ListUsers() *[]models.ReturnUser {	return request[[]models.ReturnUser](http.MethodGet, "/api/users", nil)}func ListUserRoles() (roles []models.UserRolePermissionTemplate) {	resp := request[models.SuccessResponse](http.MethodGet, "/api/v1/users/roles", nil)	d, _ := json.Marshal(resp.Response)	json.Unmarshal(d, &roles)	return}func DeleteUserRole(roleID string) *models.SuccessResponse {	return request[models.SuccessResponse](http.MethodDelete, fmt.Sprintf("/api/v1/users/role?role_id=%s", roleID), nil)}func GetUserRole(roleID string) (role models.UserRolePermissionTemplate) {	resp := request[models.SuccessResponse](http.MethodGet, fmt.Sprintf("/api/v1/users/role?role_id=%s", roleID), nil)	d, _ := json.Marshal(resp.Response)	json.Unmarshal(d, &role)	return}func ListUserGrps() (groups []models.UserGroup) {	resp := request[models.SuccessResponse](http.MethodGet, "/api/v1/users/groups", nil)	d, _ := json.Marshal(resp.Response)	json.Unmarshal(d, &groups)	return}func DeleteUserGrp(grpID string) *models.SuccessResponse {	return request[models.SuccessResponse](http.MethodDelete, fmt.Sprintf("/api/v1/users/group?group_id=%s", grpID), nil)}func GetUserGrp(grpID string) (group models.UserGroup) {	resp := request[models.SuccessResponse](http.MethodGet, fmt.Sprintf("/api/v1/users/group?group_id=%s", grpID), nil)	d, _ := json.Marshal(resp.Response)	json.Unmarshal(d, &group)	return}
 |