api/graph: Remove usage of database.Apply

This commit is contained in:
Adnan Maolood 2022-02-28 11:51:12 -05:00 committed by Drew DeVault
parent 5e95e4ebb6
commit 02b9b60e94
3 changed files with 28 additions and 4 deletions

View File

@ -3,7 +3,7 @@ module git.sr.ht/~sircmpwn/todo.sr.ht/api
go 1.15
require (
git.sr.ht/~sircmpwn/core-go v0.0.0-20211218082756-f762ad220360
git.sr.ht/~sircmpwn/core-go v0.0.0-20220314110514-33bc768cc765
github.com/99designs/gqlgen v0.14.0
github.com/Masterminds/squirrel v1.4.0
github.com/emersion/go-message v0.15.0

View File

@ -33,6 +33,8 @@ cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
git.sr.ht/~sircmpwn/core-go v0.0.0-20211218082756-f762ad220360 h1:KZwWE8xwafnRCldGTHeeuYH3QKhlrgsCqukIgXHzUgs=
git.sr.ht/~sircmpwn/core-go v0.0.0-20211218082756-f762ad220360/go.mod h1:uUqzeO5OLl/nRZfPk0igIAweRZiVwUmu/OGYfjS9fWc=
git.sr.ht/~sircmpwn/core-go v0.0.0-20220314110514-33bc768cc765 h1:QE7Jv8FFOct82B/voDbTQ5UWfrMOhuyj4LxQx2UU/28=
git.sr.ht/~sircmpwn/core-go v0.0.0-20220314110514-33bc768cc765/go.mod h1:uUqzeO5OLl/nRZfPk0igIAweRZiVwUmu/OGYfjS9fWc=
git.sr.ht/~sircmpwn/dowork v0.0.0-20210820133136-d3970e97def3 h1:9WCv5cK67s2SiY/R4DWT/OchEsFnfYDz3lbevKxZ4QI=
git.sr.ht/~sircmpwn/dowork v0.0.0-20210820133136-d3970e97def3/go.mod h1:8neHEO3503w/rNtttnR0JFpQgM/GFhaafVwvkPsFIDw=
git.sr.ht/~sircmpwn/getopt v0.0.0-20191230200459-23622cc906b3 h1:4wDp4BKF7NQqoh73VXpZsB/t1OEhDpz/zEpmdQfbjDk=

View File

@ -198,15 +198,22 @@ func (r *mutationResolver) CreateTracker(ctx context.Context, name string, descr
}
func (r *mutationResolver) UpdateTracker(ctx context.Context, id int, input map[string]interface{}) (*model.Tracker, error) {
query := sq.Update("tracker").
PlaceholderFormat(sq.Dollar)
valid := valid.New(ctx).WithInput(input)
valid.OptionalString("description", func(desc string) {
valid.Expect(len(desc) < 8192,
"Description must be fewer than 8192 characters").
WithField("description")
if !valid.Ok() {
return
}
query = query.Set(`description`, desc)
})
valid.OptionalString("visibility", func(vis string) {
input["visibility"] = model.Visibility(vis)
query = query.Set(`visibility`, vis)
})
if !valid.Ok() {
return nil, nil
@ -223,7 +230,7 @@ func (r *mutationResolver) UpdateTracker(ctx context.Context, id int, input map[
if err := database.WithTx(ctx, nil, func(tx *sql.Tx) error {
var err error
if len(input) != 0 {
_, err = database.Apply(tracker, input).
_, err = query.
Where(database.WithAlias(tracker.Alias(), `id`)+"= ?", tracker.ID).
Set(database.WithAlias(tracker.Alias(), `updated`),
sq.Expr(`now() at time zone 'utc'`)).
@ -554,17 +561,32 @@ func (r *mutationResolver) CreateLabel(ctx context.Context, trackerID int, name
}
func (r *mutationResolver) UpdateLabel(ctx context.Context, id int, input map[string]interface{}) (*model.Label, error) {
query := sq.Update("label").
PlaceholderFormat(sq.Dollar)
valid := valid.New(ctx).WithInput(input)
valid.OptionalString("foregroundColor", func(foreground string) {
_, err := parseColor(foreground)
valid.Expect(err == nil, err.Error()).WithField("foregroundColor")
if !valid.Ok() {
return
}
query = query.Set(`text_color`, foreground)
})
valid.OptionalString("backgroundColor", func(background string) {
_, err := parseColor(background)
valid.Expect(err == nil, err.Error()).WithField("backgroundColor")
if !valid.Ok() {
return
}
query = query.Set(`color`, background)
})
valid.OptionalString("name", func(name string) {
valid.Expect(len(name) != 0, "Name cannot be empty").WithField(name)
if !valid.Ok() {
return
}
query = query.Set(`name`, name)
})
if !valid.Ok() {
return nil, nil
@ -585,7 +607,7 @@ func (r *mutationResolver) UpdateLabel(ctx context.Context, id int, input map[st
if err := database.WithTx(ctx, nil, func(tx *sql.Tx) error {
var err error
if len(input) != 0 {
_, err = database.Apply(label, input).
_, err = query.
Where(database.WithAlias(label.Alias(), `id`)+"= ?", id).
RunWith(tx).
ExecContext(ctx)