stufflog graphql server
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

19 lines
985 B

  1. package repositories
  2. import (
  3. "context"
  4. "git.aiterp.net/stufflog/server/models"
  5. )
  6. type ProjectRepository interface {
  7. Find(ctx context.Context, id string) (*models.Project, error)
  8. List(ctx context.Context, filter models.ProjectFilter) ([]*models.Project, error)
  9. Insert(ctx context.Context, project models.Project) (*models.Project, error)
  10. Save(ctx context.Context, project models.Project) error
  11. ListPermissions(ctx context.Context, project models.Project) ([]*models.ProjectPermission, error)
  12. GetPermission(ctx context.Context, project models.Project, user models.User) (*models.ProjectPermission, error)
  13. GetUserPermissions(ctx context.Context, user models.User, projectIDs []string) ([]*models.ProjectPermission, error)
  14. GetIssuePermission(ctx context.Context, issue models.Issue, user models.User) (*models.ProjectPermission, error)
  15. SetPermission(ctx context.Context, permission models.ProjectPermission) error
  16. Delete(ctx context.Context, project models.Project) error
  17. }