Give dialects control over how insert and update queries are performed (#79946)
* Refactor insert, update * Add separate insert, update methods * Refactor Insert, Update signatures
This commit is contained in:
@@ -443,31 +443,13 @@ func (s *sqlEntityServer) Create(ctx context.Context, r *entity.CreateEntityRequ
|
||||
}
|
||||
|
||||
// 1. Add row to the `entity_history` values
|
||||
query, args, err := s.dialect.InsertQuery("entity_history", values)
|
||||
if err != nil {
|
||||
s.log.Error("error building entity history insert", "msg", err.Error())
|
||||
return err
|
||||
}
|
||||
|
||||
s.log.Debug("create", "query", query, "args", args)
|
||||
|
||||
_, err = tx.Exec(ctx, query, args...)
|
||||
if err != nil {
|
||||
s.log.Error("error writing entity history", "msg", err.Error())
|
||||
if err := s.dialect.Insert(ctx, tx, "entity_history", values); err != nil {
|
||||
s.log.Error("error inserting entity history", "msg", err.Error())
|
||||
return err
|
||||
}
|
||||
|
||||
// 2. Add row to the main `entity` table
|
||||
query, args, err = s.dialect.InsertQuery("entity", values)
|
||||
if err != nil {
|
||||
s.log.Error("error building entity insert sql", "msg", err.Error())
|
||||
return err
|
||||
}
|
||||
|
||||
s.log.Debug("create", "query", query, "args", args)
|
||||
|
||||
_, err = tx.Exec(ctx, query, args...)
|
||||
if err != nil {
|
||||
if err := s.dialect.Insert(ctx, tx, "entity", values); err != nil {
|
||||
s.log.Error("error inserting entity", "msg", err.Error())
|
||||
return err
|
||||
}
|
||||
@@ -666,15 +648,8 @@ func (s *sqlEntityServer) Update(ctx context.Context, r *entity.UpdateEntityRequ
|
||||
}
|
||||
|
||||
// 1. Add the `entity_history` values
|
||||
query, args, err := s.dialect.InsertQuery("entity_history", values)
|
||||
if err != nil {
|
||||
s.log.Error("error building entity history insert", "msg", err.Error())
|
||||
return err
|
||||
}
|
||||
|
||||
_, err = tx.Exec(ctx, query, args...)
|
||||
if err != nil {
|
||||
s.log.Error("error writing entity history", "msg", err.Error())
|
||||
if err := s.dialect.Insert(ctx, tx, "entity_history", values); err != nil {
|
||||
s.log.Error("error inserting entity history", "msg", err.Error())
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -690,19 +665,15 @@ func (s *sqlEntityServer) Update(ctx context.Context, r *entity.UpdateEntityRequ
|
||||
delete(values, "created_at")
|
||||
delete(values, "created_by")
|
||||
|
||||
query, args, err = s.dialect.UpdateQuery(
|
||||
err = s.dialect.Update(
|
||||
ctx,
|
||||
tx,
|
||||
"entity",
|
||||
values,
|
||||
map[string]any{
|
||||
"guid": current.Guid,
|
||||
},
|
||||
)
|
||||
if err != nil {
|
||||
s.log.Error("error building entity update sql", "msg", err.Error())
|
||||
return err
|
||||
}
|
||||
|
||||
_, err = tx.Exec(ctx, query, args...)
|
||||
if err != nil {
|
||||
s.log.Error("error updating entity", "msg", err.Error())
|
||||
return err
|
||||
|
||||
Reference in New Issue
Block a user