feat(ui+backend): project params persistence

This commit is contained in:
2020-09-11 12:41:07 +02:00
parent aacff1d694
commit 833213e5fe
9 changed files with 161 additions and 17 deletions

View File

@ -18,6 +18,18 @@ input ProjectTaskEstimationsChanges {
pessimistic: Float
}
input ProjectParamsChanges {
timeUnit: TimeUnitChanges
currency: String
roundUpEstimations: Boolean
hideFinancialPreviewOnPrint: Boolean
}
input TimeUnitChanges {
label: String
acronym: String
}
type Mutation {
updateUser(id: ID!, changes: UserChanges!): User!
createProject(changes: CreateProjectChanges!): Project!
@ -25,4 +37,5 @@ type Mutation {
addProjectTask(projectId: ID!, changes: ProjectTaskChanges!): Task!
removeProjectTask(projectId: ID!, taskId: ID!): Boolean!
updateProjectTask(projectId: ID!, taskId: ID!, changes: ProjectTaskChanges!): Task!
updateProjectParams(projectId: ID!, changes: ProjectParamsChanges!): ProjectParams!
}

View File

@ -34,6 +34,10 @@ func (r *mutationResolver) UpdateProjectTask(ctx context.Context, projectID int6
return handleUpdateProjectTask(ctx, projectID, taskID, changes)
}
func (r *mutationResolver) UpdateProjectParams(ctx context.Context, projectID int64, changes model.ProjectParamsChanges) (*model.ProjectParams, error) {
return handleUpdateProjectParams(ctx, projectID, changes)
}
// Mutation returns generated.MutationResolver implementation.
func (r *Resolver) Mutation() generated.MutationResolver { return &mutationResolver{r} }

View File

@ -110,3 +110,19 @@ func handleUpdateProjectTask(ctx context.Context, projectID, taskID int64, chang
return task, nil
}
func handleUpdateProjectParams(ctx context.Context, projectID int64, changes model.ProjectParamsChanges) (*model.ProjectParams, error) {
db, err := getDB(ctx)
if err != nil {
return nil, errors.WithStack(err)
}
repo := model.NewProjectRepository(db)
project, err := repo.UpdateParams(ctx, projectID, changes)
if err != nil {
return nil, errors.WithStack(err)
}
return project.Params, nil
}

View File

@ -18,15 +18,7 @@ func (r *queryResolver) Projects(ctx context.Context, filter *model1.ProjectsFil
return handleProjects(ctx, filter)
}
func (r *taskResolver) Estimations(ctx context.Context, obj *model1.Task) (*model1.Estimations, error) {
return handleEstimations(ctx, obj)
}
// Query returns generated.QueryResolver implementation.
func (r *Resolver) Query() generated.QueryResolver { return &queryResolver{r} }
// Task returns generated.TaskResolver implementation.
func (r *Resolver) Task() generated.TaskResolver { return &taskResolver{r} }
type queryResolver struct{ *Resolver }
type taskResolver struct{ *Resolver }