MCPcopy
hub / github.com/spacecloud-io/space-cloud / HandleGetServiceRoleRequest

Method HandleGetServiceRoleRequest

runner/server/handle_roles.go:52–103  ·  view source on GitHub ↗

HandleGetServiceRoleRequest handles request to get all service role

()

Source from the content-addressed store, hash-verified

50
51// HandleGetServiceRoleRequest handles request to get all service role
52func (s *Server) HandleGetServiceRoleRequest() http.HandlerFunc {
53
54 return func(w http.ResponseWriter, r *http.Request) {
55
56 defer utils.CloseTheCloser(r.Body)
57
58 ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
59 defer cancel()
60
61 // Verify token
62 _, err := s.auth.VerifyToken(utils.GetToken(r))
63 if err != nil {
64 _ = helpers.Logger.LogError(helpers.GetRequestID(ctx), "Failed to get service role", err, nil)
65 _ = helpers.Response.SendErrorResponse(ctx, w, http.StatusUnauthorized, err)
66 return
67 }
68
69 vars := mux.Vars(r)
70 projectID := vars["project"]
71 serviceID := r.URL.Query().Get("serviceId")
72 roleID := r.URL.Query().Get("roleId")
73
74 serviceRole, err := s.driver.GetServiceRole(ctx, projectID)
75 if err != nil {
76 _ = helpers.Response.SendErrorResponse(ctx, w, http.StatusInternalServerError, err)
77 return
78 }
79
80 result := make([]*model.Role, 0)
81 if serviceID != "" && roleID != "" {
82 for _, role := range serviceRole {
83 if role.ID == roleID && role.Service == serviceID {
84 result = append(result, role)
85 }
86 }
87 _ = helpers.Response.SendResponse(ctx, w, http.StatusOK, model.Response{Result: result})
88 return
89 }
90
91 if serviceID != "" {
92 for _, role := range serviceRole {
93 if role.Service == serviceID {
94 result = append(result, role)
95 }
96 }
97 _ = helpers.Response.SendResponse(ctx, w, http.StatusOK, model.Response{Result: result})
98 return
99 }
100
101 _ = helpers.Response.SendResponse(ctx, w, http.StatusOK, model.Response{Result: serviceRole})
102 }
103}
104
105// HandleDeleteServiceRole handles the request to delete a service role
106func (s *Server) HandleDeleteServiceRole() http.HandlerFunc {

Callers 1

routesMethod · 0.95

Calls 3

VerifyTokenMethod · 0.80
GetServiceRoleMethod · 0.65
GetMethod · 0.45

Tested by

no test coverage detected