(ctx context.Context, req *adminv1.GetServiceRequest)
| 107 | } |
| 108 | |
| 109 | func (s *Server) GetService(ctx context.Context, req *adminv1.GetServiceRequest) (*adminv1.GetServiceResponse, error) { |
| 110 | observability.AddRequestAttributes(ctx, |
| 111 | attribute.String("args.name", req.Name), |
| 112 | attribute.String("args.organization", req.Org), |
| 113 | ) |
| 114 | |
| 115 | org, err := s.admin.DB.FindOrganizationByName(ctx, req.Org) |
| 116 | if err != nil { |
| 117 | return nil, err |
| 118 | } |
| 119 | |
| 120 | claims := auth.GetClaims(ctx) |
| 121 | if !claims.OrganizationPermissions(ctx, org.ID).ManageOrg { |
| 122 | return nil, status.Error(codes.PermissionDenied, "not allowed to show service") |
| 123 | } |
| 124 | |
| 125 | service, err := s.admin.DB.FindServiceByName(ctx, org.ID, req.Name) |
| 126 | if err != nil { |
| 127 | return nil, err |
| 128 | } |
| 129 | |
| 130 | orgMemberService, err := s.admin.DB.FindOrganizationMemberServiceForService(ctx, service.ID) |
| 131 | if err != nil { |
| 132 | return nil, err |
| 133 | } |
| 134 | |
| 135 | projectMemberServices, err := s.admin.DB.FindProjectMemberServicesForService(ctx, service.ID) |
| 136 | if err != nil { |
| 137 | return nil, err |
| 138 | } |
| 139 | var projectMemberServicesPB []*adminv1.ProjectMemberService |
| 140 | for _, projectMemberService := range projectMemberServices { |
| 141 | projectMemberServicesPB = append(projectMemberServicesPB, projectMemberServiceWithProjectToPB(projectMemberService, org.ID, org.Name)) |
| 142 | } |
| 143 | |
| 144 | return &adminv1.GetServiceResponse{ |
| 145 | Service: orgMemberServiceToPB(orgMemberService, org.ID, org.Name), |
| 146 | ProjectMemberships: projectMemberServicesPB, |
| 147 | }, nil |
| 148 | } |
| 149 | |
| 150 | // ListServices lists all service accounts in an organization. |
| 151 | func (s *Server) ListServices(ctx context.Context, req *adminv1.ListServicesRequest) (*adminv1.ListServicesResponse, error) { |
nothing calls this directly
no test coverage detected