(ctx context.Context, name string)
| 1346 | } |
| 1347 | |
| 1348 | func (s *IssueService) getIssueMessage(ctx context.Context, name string) (*store.IssueMessage, error) { |
| 1349 | projectID, issueUID, err := common.GetProjectIDIssueUID(name) |
| 1350 | if err != nil { |
| 1351 | return nil, connect.NewError(connect.CodeInvalidArgument, err) |
| 1352 | } |
| 1353 | issue, err := s.store.GetIssue(ctx, &store.FindIssueMessage{ |
| 1354 | Workspace: common.GetWorkspaceIDFromContext(ctx), |
| 1355 | UID: &issueUID, |
| 1356 | ProjectIDs: []string{projectID}, |
| 1357 | }) |
| 1358 | if err != nil { |
| 1359 | return nil, connect.NewError(connect.CodeInternal, errors.Wrapf(err, "failed to get issue")) |
| 1360 | } |
| 1361 | if issue == nil { |
| 1362 | return nil, connect.NewError(connect.CodeNotFound, errors.Errorf("issue %d not found in project %s", issueUID, projectID)) |
| 1363 | } |
| 1364 | return issue, nil |
| 1365 | } |
| 1366 | |
| 1367 | func (s *IssueService) isUserReviewer(ctx context.Context, issue *store.IssueMessage, role string, user *store.UserMessage) bool { |
| 1368 | roles := s.getUserRoleMap(ctx, issue.ProjectID, user) |
no test coverage detected