fix: add project id on project grant (#202)

* fix: add project id on project grant

* fix: get granted project grant member
This commit is contained in:
Fabi 2020-06-10 14:28:15 +02:00 committed by GitHub
parent 652a408c99
commit 9965beee9c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 649 additions and 626 deletions

View File

@ -62,6 +62,14 @@ func (repo *ProjectRepo) SearchGrantedProjects(ctx context.Context, request *pro
}, nil
}
func (repo *ProjectRepo) GetGrantedProjectGrantByIDs(ctx context.Context, projectID, grantID string) (project *proj_model.GrantedProjectView, err error) {
p, err := repo.View.GrantedProjectGrantByIDs(projectID, grantID)
if err != nil {
return nil, err
}
return model.GrantedProjectToModel(p), nil
}
func (repo *ProjectRepo) ProjectMemberByID(ctx context.Context, projectID, userID string) (member *proj_model.ProjectMember, err error) {
member = proj_model.NewProjectMember(projectID, userID)
return repo.ProjectEvents.ProjectMemberByIDs(ctx, member)

View File

@ -15,6 +15,10 @@ func (v *View) GrantedProjectByIDs(projectID, orgID string) (*model.GrantedProje
return view.GrantedProjectByIDs(v.Db, grantedProjectTable, projectID, orgID)
}
func (v *View) GrantedProjectGrantByIDs(projectID, grantID string) (*model.GrantedProjectView, error) {
return view.GrantedProjectGrantByIDs(v.Db, grantedProjectTable, projectID, grantID)
}
func (v *View) GrantedProjectsByID(projectID string) ([]*model.GrantedProjectView, error) {
return view.GrantedProjectsByID(v.Db, grantedProjectTable, projectID)
}

View File

@ -13,6 +13,7 @@ type ProjectRepository interface {
DeactivateProject(ctx context.Context, id string) (*model.Project, error)
ReactivateProject(ctx context.Context, id string) (*model.Project, error)
SearchGrantedProjects(ctx context.Context, request *model.GrantedProjectSearchRequest) (*model.GrantedProjectSearchResponse, error)
GetGrantedProjectGrantByIDs(ctx context.Context, projectID, grantID string) (*model.GrantedProjectView, error)
ProjectMemberByID(ctx context.Context, projectID, userID string) (*model.ProjectMember, error)
AddProjectMember(ctx context.Context, member *model.ProjectMember) (*model.ProjectMember, error)

View File

@ -12,12 +12,21 @@ func GrantedProjectByIDs(db *gorm.DB, table, projectID, orgID string) (*model.Gr
project := new(model.GrantedProjectView)
projectIDQuery := model.GrantedProjectSearchQuery{Key: proj_model.GRANTEDPROJECTSEARCHKEY_PROJECTID, Value: projectID, Method: global_model.SEARCHMETHOD_EQUALS}
grantIDQuery := model.GrantedProjectSearchQuery{Key: proj_model.GRANTEDPROJECTSEARCHKEY_ORGID, Value: orgID, Method: global_model.SEARCHMETHOD_EQUALS}
query := view.PrepareGetByQuery(table, projectIDQuery, grantIDQuery)
orgIDQuery := model.GrantedProjectSearchQuery{Key: proj_model.GRANTEDPROJECTSEARCHKEY_ORGID, Value: orgID, Method: global_model.SEARCHMETHOD_EQUALS}
query := view.PrepareGetByQuery(table, projectIDQuery, orgIDQuery)
err := query(db, project)
return project, err
}
func GrantedProjectGrantByIDs(db *gorm.DB, table, projectID, grantID string) (*model.GrantedProjectView, error) {
project := new(model.GrantedProjectView)
projectIDQuery := model.GrantedProjectSearchQuery{Key: proj_model.GRANTEDPROJECTSEARCHKEY_PROJECTID, Value: projectID, Method: global_model.SEARCHMETHOD_EQUALS}
grantIDQuery := model.GrantedProjectSearchQuery{Key: proj_model.GRANTEDPROJECTSEARCHKEY_GRANTID, Value: grantID, Method: global_model.SEARCHMETHOD_EQUALS}
query := view.PrepareGetByQuery(table, projectIDQuery, grantIDQuery)
err := query(db, project)
return project, err
}
func GrantedProjectsByID(db *gorm.DB, table, projectID string) ([]*model.GrantedProjectView, error) {
projects := make([]*model.GrantedProjectView, 0)
queries := []*proj_model.GrantedProjectSearchQuery{

File diff suppressed because it is too large Load Diff

View File

@ -167,7 +167,7 @@
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/v1ProjectGrant"
"$ref": "#/definitions/v1GrantedProject"
}
}
},

View File

@ -65,12 +65,12 @@ func (s *Server) ProjectByID(ctx context.Context, id *ProjectID) (*Project, erro
return projectFromModel(project), nil
}
func (s *Server) GetGrantedProjectGrantByID(ctx context.Context, in *ProjectGrantID) (*ProjectGrant, error) {
project, err := s.project.ProjectGrantByID(ctx, in.ProjectId, in.Id)
func (s *Server) GetGrantedProjectGrantByID(ctx context.Context, in *ProjectGrantID) (*GrantedProject, error) {
project, err := s.project.GetGrantedProjectGrantByIDs(ctx, in.ProjectId, in.Id)
if err != nil {
return nil, err
}
return projectGrantFromModel(project), nil
return grantedProjectFromModel(project), nil
}
func (s *Server) AddProjectRole(ctx context.Context, in *ProjectRoleAdd) (*ProjectRole, error) {

View File

@ -23,6 +23,7 @@ func projectGrantFromModel(grant *proj_model.ProjectGrant) *ProjectGrant {
GrantedOrgId: grant.GrantedOrgID,
RoleKeys: grant.RoleKeys,
Sequence: grant.Sequence,
ProjectId: grant.AggregateID,
}
}

View File

@ -641,7 +641,7 @@ service ManagementService {
}
//GRANTED_PROJECT_GRANTS
rpc GetGrantedProjectGrantByID(ProjectGrantID) returns (ProjectGrant) {
rpc GetGrantedProjectGrantByID(ProjectGrantID) returns (GrantedProject) {
option (google.api.http) = {
get: "/grantedprojects/{project_id}/grants/{id}"
};