add logging and a lot of loaders.

This commit is contained in:
2020-05-30 15:28:40 +02:00
parent a4c019e67b
commit bd024a01a4
24 changed files with 1078 additions and 95 deletions
+39 -4
View File
@@ -107,6 +107,7 @@ func (r *projectRepository) GetPermission(ctx context.Context, project models.Pr
return &models.ProjectPermission{
ProjectID: project.ID,
UserID: user.ID,
Level: models.ProjectPermissionLevelNoAccess,
}, nil
}
@@ -116,6 +117,40 @@ func (r *projectRepository) GetPermission(ctx context.Context, project models.Pr
return &permission, nil
}
func (r *projectRepository) GetUserPermissions(ctx context.Context, user models.User, projectIDs []string) ([]*models.ProjectPermission, error) {
query, args, err := sq.Select("*").From("project_permission").Where(sq.Eq{
"user_id": user.ID,
"project_id": projectIDs,
}).ToSql()
if err != nil {
return nil, err
}
permissions := make([]*models.ProjectPermission, 0, 8)
err = r.db.GetContext(ctx, &permissions, query, args...)
if err != nil && err != sql.ErrNoRows {
return nil, err
}
filled := make(map[string]bool, len(permissions))
for _, permission := range permissions {
filled[permission.ProjectID] = true
}
for _, projectID := range projectIDs {
if filled[projectID] {
continue
}
permissions = append(permissions, &models.ProjectPermission{
ProjectID: projectID,
UserID: user.ID,
Level: models.ProjectPermissionLevelNoAccess,
})
}
return permissions, nil
}
func (r *projectRepository) GetIssuePermission(ctx context.Context, issue models.Issue, user models.User) (*models.ProjectPermission, error) {
return r.GetPermission(ctx, models.Project{ID: issue.ProjectID}, user)
}
@@ -140,10 +175,10 @@ func (r *projectRepository) Delete(ctx context.Context, project models.Project)
return err
}
//_, err = r.db.ExecContext(ctx, "DELETE FROM project_status WHERE project_id=?", project.ID)
//if err != nil {
// return err
//}
_, err = r.db.ExecContext(ctx, "DELETE FROM project_status WHERE project_id=?", project.ID)
if err != nil {
return err
}
return nil
}