Remove transaction from create/update/remove procedures
This commit is contained in:
@@ -12,7 +12,6 @@ import (
|
||||
"context"
|
||||
"database/sql"
|
||||
"fmt"
|
||||
"github.com/jmoiron/sqlx"
|
||||
"github.com/Masterminds/squirrel"
|
||||
"github.com/cortezaproject/corteza-server/store"
|
||||
{{- if not $.Search.DisablePaging }}
|
||||
@@ -300,21 +299,15 @@ func (s Store) Lookup{{ pubIdent $.Types.Singular }}By{{ pubIdent $lookup.Suffix
|
||||
{{ end }}
|
||||
|
||||
// Create{{ pubIdent $.Types.Singular }} creates one or more rows in {{ $.RDBMS.Table }} table
|
||||
func (s Store) Create{{ pubIdent $.Types.Singular }}(ctx context.Context, rr ... *{{ $.Types.GoType }}) error {
|
||||
if len(rr) == 0 {
|
||||
return nil
|
||||
func (s Store) Create{{ pubIdent $.Types.Singular }}(ctx context.Context, rr ... *{{ $.Types.GoType }}) (err error) {
|
||||
for _, res := range rr {
|
||||
err = ExecuteSqlizer(ctx, s.DB(), s.Insert(s.{{ $.Types.Singular }}Table()).SetMap(s.internal{{ pubIdent $.Types.Singular }}Encoder(res)))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return Tx(ctx, s.db, s.config, nil, func(db *sqlx.Tx) (err error) {
|
||||
for _, res := range rr {
|
||||
err = ExecuteSqlizer(ctx, s.DB(), s.Insert(s.{{ $.Types.Singular }}Table()).SetMap(s.internal{{ pubIdent $.Types.Singular }}Encoder(res)))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
// Update{{ pubIdent $.Types.Singular }} updates one or more existing rows in {{ $.RDBMS.Table }}
|
||||
@@ -325,48 +318,36 @@ func (s Store) Update{{ pubIdent $.Types.Singular }}(ctx context.Context, rr ...
|
||||
// PartialUpdate{{ pubIdent $.Types.Singular }} updates one or more existing rows in {{ $.RDBMS.Table }}
|
||||
//
|
||||
// It wraps the update into transaction and can perform partial update by providing list of updatable columns
|
||||
func (s Store) PartialUpdate{{ pubIdent $.Types.Singular }}(ctx context.Context, onlyColumns []string, rr ... *{{ $.Types.GoType }}) error {
|
||||
if len(rr) == 0 {
|
||||
return nil
|
||||
func (s Store) PartialUpdate{{ pubIdent $.Types.Singular }}(ctx context.Context, onlyColumns []string, rr ... *{{ $.Types.GoType }}) (err error) {
|
||||
for _, res := range rr {
|
||||
err = s.ExecUpdate{{ pubIdent $.Types.Plural }}(
|
||||
ctx,
|
||||
{{ template "filterByPrimaryKeys" $.Fields }},
|
||||
s.internal{{ pubIdent $.Types.Singular }}Encoder(res).Skip(
|
||||
{{- range $field := $.Fields -}}
|
||||
{{- if $field.IsPrimaryKey -}}
|
||||
{{ printf "%q" $field.Column }},
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
).Only(onlyColumns...))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return Tx(ctx, s.db, s.config, nil, func(db *sqlx.Tx) (err error) {
|
||||
for _, res := range rr {
|
||||
err = s.ExecUpdate{{ pubIdent $.Types.Plural }}(
|
||||
ctx,
|
||||
{{ template "filterByPrimaryKeys" $.Fields }},
|
||||
s.internal{{ pubIdent $.Types.Singular }}Encoder(res).Skip(
|
||||
{{- range $field := $.Fields -}}
|
||||
{{- if $field.IsPrimaryKey -}}
|
||||
{{ printf "%q" $field.Column }},
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
).Only(onlyColumns...))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
// Remove{{ pubIdent $.Types.Singular }} removes one or more rows from {{ $.RDBMS.Table }} table
|
||||
func (s Store) Remove{{ pubIdent $.Types.Singular }}(ctx context.Context, rr ... *{{ $.Types.GoType }}) error {
|
||||
if len(rr) == 0 {
|
||||
return nil
|
||||
func (s Store) Remove{{ pubIdent $.Types.Singular }}(ctx context.Context, rr ... *{{ $.Types.GoType }}) (err error) {
|
||||
for _, res := range rr {
|
||||
err = ExecuteSqlizer(ctx, s.DB(), s.Delete(s.{{ $.Types.Singular }}Table({{ printf "%q" .RDBMS.Alias }})).Where({{ template "filterByPrimaryKeys" $.Fields }},))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return Tx(ctx, s.db, s.config, nil, func(db *sqlx.Tx) (err error) {
|
||||
for _, res := range rr {
|
||||
err = ExecuteSqlizer(ctx, s.DB(), s.Delete(s.{{ $.Types.Singular }}Table({{ printf "%q" .RDBMS.Alias }})).Where({{ template "filterByPrimaryKeys" $.Fields }},))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
})
|
||||
return nil
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -15,7 +15,6 @@ import (
|
||||
"github.com/Masterminds/squirrel"
|
||||
"github.com/cortezaproject/corteza-server/pkg/actionlog"
|
||||
"github.com/cortezaproject/corteza-server/store"
|
||||
"github.com/jmoiron/sqlx"
|
||||
"strings"
|
||||
)
|
||||
|
||||
@@ -192,21 +191,15 @@ func (s Store) SearchActionlogs(ctx context.Context, f actionlog.Filter) (action
|
||||
}
|
||||
|
||||
// CreateActionlog creates one or more rows in actionlog table
|
||||
func (s Store) CreateActionlog(ctx context.Context, rr ...*actionlog.Action) error {
|
||||
if len(rr) == 0 {
|
||||
return nil
|
||||
func (s Store) CreateActionlog(ctx context.Context, rr ...*actionlog.Action) (err error) {
|
||||
for _, res := range rr {
|
||||
err = ExecuteSqlizer(ctx, s.DB(), s.Insert(s.ActionlogTable()).SetMap(s.internalActionlogEncoder(res)))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return Tx(ctx, s.db, s.config, nil, func(db *sqlx.Tx) (err error) {
|
||||
for _, res := range rr {
|
||||
err = ExecuteSqlizer(ctx, s.DB(), s.Insert(s.ActionlogTable()).SetMap(s.internalActionlogEncoder(res)))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
// UpdateActionlog updates one or more existing rows in actionlog
|
||||
@@ -217,42 +210,30 @@ func (s Store) UpdateActionlog(ctx context.Context, rr ...*actionlog.Action) err
|
||||
// PartialUpdateActionlog updates one or more existing rows in actionlog
|
||||
//
|
||||
// It wraps the update into transaction and can perform partial update by providing list of updatable columns
|
||||
func (s Store) PartialUpdateActionlog(ctx context.Context, onlyColumns []string, rr ...*actionlog.Action) error {
|
||||
if len(rr) == 0 {
|
||||
return nil
|
||||
func (s Store) PartialUpdateActionlog(ctx context.Context, onlyColumns []string, rr ...*actionlog.Action) (err error) {
|
||||
for _, res := range rr {
|
||||
err = s.ExecUpdateActionlogs(
|
||||
ctx,
|
||||
squirrel.Eq{s.preprocessColumn("alg.id", ""): s.preprocessValue(res.ID, "")},
|
||||
s.internalActionlogEncoder(res).Skip("id").Only(onlyColumns...))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return Tx(ctx, s.db, s.config, nil, func(db *sqlx.Tx) (err error) {
|
||||
for _, res := range rr {
|
||||
err = s.ExecUpdateActionlogs(
|
||||
ctx,
|
||||
squirrel.Eq{s.preprocessColumn("alg.id", ""): s.preprocessValue(res.ID, "")},
|
||||
s.internalActionlogEncoder(res).Skip("id").Only(onlyColumns...))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
// RemoveActionlog removes one or more rows from actionlog table
|
||||
func (s Store) RemoveActionlog(ctx context.Context, rr ...*actionlog.Action) error {
|
||||
if len(rr) == 0 {
|
||||
return nil
|
||||
func (s Store) RemoveActionlog(ctx context.Context, rr ...*actionlog.Action) (err error) {
|
||||
for _, res := range rr {
|
||||
err = ExecuteSqlizer(ctx, s.DB(), s.Delete(s.ActionlogTable("alg")).Where(squirrel.Eq{s.preprocessColumn("alg.id", ""): s.preprocessValue(res.ID, "")}))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return Tx(ctx, s.db, s.config, nil, func(db *sqlx.Tx) (err error) {
|
||||
for _, res := range rr {
|
||||
err = ExecuteSqlizer(ctx, s.DB(), s.Delete(s.ActionlogTable("alg")).Where(squirrel.Eq{s.preprocessColumn("alg.id", ""): s.preprocessValue(res.ID, "")}))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
})
|
||||
return nil
|
||||
}
|
||||
|
||||
// RemoveActionlogByID removes row from the actionlog table
|
||||
|
||||
@@ -15,7 +15,6 @@ import (
|
||||
"github.com/Masterminds/squirrel"
|
||||
"github.com/cortezaproject/corteza-server/store"
|
||||
"github.com/cortezaproject/corteza-server/system/types"
|
||||
"github.com/jmoiron/sqlx"
|
||||
"strings"
|
||||
)
|
||||
|
||||
@@ -232,21 +231,15 @@ func (s Store) LookupApplicationByID(ctx context.Context, id uint64) (*types.App
|
||||
}
|
||||
|
||||
// CreateApplication creates one or more rows in applications table
|
||||
func (s Store) CreateApplication(ctx context.Context, rr ...*types.Application) error {
|
||||
if len(rr) == 0 {
|
||||
return nil
|
||||
func (s Store) CreateApplication(ctx context.Context, rr ...*types.Application) (err error) {
|
||||
for _, res := range rr {
|
||||
err = ExecuteSqlizer(ctx, s.DB(), s.Insert(s.ApplicationTable()).SetMap(s.internalApplicationEncoder(res)))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return Tx(ctx, s.db, s.config, nil, func(db *sqlx.Tx) (err error) {
|
||||
for _, res := range rr {
|
||||
err = ExecuteSqlizer(ctx, s.DB(), s.Insert(s.ApplicationTable()).SetMap(s.internalApplicationEncoder(res)))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
// UpdateApplication updates one or more existing rows in applications
|
||||
@@ -257,42 +250,30 @@ func (s Store) UpdateApplication(ctx context.Context, rr ...*types.Application)
|
||||
// PartialUpdateApplication updates one or more existing rows in applications
|
||||
//
|
||||
// It wraps the update into transaction and can perform partial update by providing list of updatable columns
|
||||
func (s Store) PartialUpdateApplication(ctx context.Context, onlyColumns []string, rr ...*types.Application) error {
|
||||
if len(rr) == 0 {
|
||||
return nil
|
||||
func (s Store) PartialUpdateApplication(ctx context.Context, onlyColumns []string, rr ...*types.Application) (err error) {
|
||||
for _, res := range rr {
|
||||
err = s.ExecUpdateApplications(
|
||||
ctx,
|
||||
squirrel.Eq{s.preprocessColumn("app.id", ""): s.preprocessValue(res.ID, "")},
|
||||
s.internalApplicationEncoder(res).Skip("id").Only(onlyColumns...))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return Tx(ctx, s.db, s.config, nil, func(db *sqlx.Tx) (err error) {
|
||||
for _, res := range rr {
|
||||
err = s.ExecUpdateApplications(
|
||||
ctx,
|
||||
squirrel.Eq{s.preprocessColumn("app.id", ""): s.preprocessValue(res.ID, "")},
|
||||
s.internalApplicationEncoder(res).Skip("id").Only(onlyColumns...))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
// RemoveApplication removes one or more rows from applications table
|
||||
func (s Store) RemoveApplication(ctx context.Context, rr ...*types.Application) error {
|
||||
if len(rr) == 0 {
|
||||
return nil
|
||||
func (s Store) RemoveApplication(ctx context.Context, rr ...*types.Application) (err error) {
|
||||
for _, res := range rr {
|
||||
err = ExecuteSqlizer(ctx, s.DB(), s.Delete(s.ApplicationTable("app")).Where(squirrel.Eq{s.preprocessColumn("app.id", ""): s.preprocessValue(res.ID, "")}))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return Tx(ctx, s.db, s.config, nil, func(db *sqlx.Tx) (err error) {
|
||||
for _, res := range rr {
|
||||
err = ExecuteSqlizer(ctx, s.DB(), s.Delete(s.ApplicationTable("app")).Where(squirrel.Eq{s.preprocessColumn("app.id", ""): s.preprocessValue(res.ID, "")}))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
})
|
||||
return nil
|
||||
}
|
||||
|
||||
// RemoveApplicationByID removes row from the applications table
|
||||
|
||||
@@ -15,7 +15,6 @@ import (
|
||||
"github.com/Masterminds/squirrel"
|
||||
"github.com/cortezaproject/corteza-server/store"
|
||||
"github.com/cortezaproject/corteza-server/system/types"
|
||||
"github.com/jmoiron/sqlx"
|
||||
)
|
||||
|
||||
// SearchAttachments returns all matching rows
|
||||
@@ -77,21 +76,15 @@ func (s Store) LookupAttachmentByID(ctx context.Context, id uint64) (*types.Atta
|
||||
}
|
||||
|
||||
// CreateAttachment creates one or more rows in attachments table
|
||||
func (s Store) CreateAttachment(ctx context.Context, rr ...*types.Attachment) error {
|
||||
if len(rr) == 0 {
|
||||
return nil
|
||||
func (s Store) CreateAttachment(ctx context.Context, rr ...*types.Attachment) (err error) {
|
||||
for _, res := range rr {
|
||||
err = ExecuteSqlizer(ctx, s.DB(), s.Insert(s.AttachmentTable()).SetMap(s.internalAttachmentEncoder(res)))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return Tx(ctx, s.db, s.config, nil, func(db *sqlx.Tx) (err error) {
|
||||
for _, res := range rr {
|
||||
err = ExecuteSqlizer(ctx, s.DB(), s.Insert(s.AttachmentTable()).SetMap(s.internalAttachmentEncoder(res)))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
// UpdateAttachment updates one or more existing rows in attachments
|
||||
@@ -102,42 +95,30 @@ func (s Store) UpdateAttachment(ctx context.Context, rr ...*types.Attachment) er
|
||||
// PartialUpdateAttachment updates one or more existing rows in attachments
|
||||
//
|
||||
// It wraps the update into transaction and can perform partial update by providing list of updatable columns
|
||||
func (s Store) PartialUpdateAttachment(ctx context.Context, onlyColumns []string, rr ...*types.Attachment) error {
|
||||
if len(rr) == 0 {
|
||||
return nil
|
||||
func (s Store) PartialUpdateAttachment(ctx context.Context, onlyColumns []string, rr ...*types.Attachment) (err error) {
|
||||
for _, res := range rr {
|
||||
err = s.ExecUpdateAttachments(
|
||||
ctx,
|
||||
squirrel.Eq{s.preprocessColumn("att.id", ""): s.preprocessValue(res.ID, "")},
|
||||
s.internalAttachmentEncoder(res).Skip("id").Only(onlyColumns...))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return Tx(ctx, s.db, s.config, nil, func(db *sqlx.Tx) (err error) {
|
||||
for _, res := range rr {
|
||||
err = s.ExecUpdateAttachments(
|
||||
ctx,
|
||||
squirrel.Eq{s.preprocessColumn("att.id", ""): s.preprocessValue(res.ID, "")},
|
||||
s.internalAttachmentEncoder(res).Skip("id").Only(onlyColumns...))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
// RemoveAttachment removes one or more rows from attachments table
|
||||
func (s Store) RemoveAttachment(ctx context.Context, rr ...*types.Attachment) error {
|
||||
if len(rr) == 0 {
|
||||
return nil
|
||||
func (s Store) RemoveAttachment(ctx context.Context, rr ...*types.Attachment) (err error) {
|
||||
for _, res := range rr {
|
||||
err = ExecuteSqlizer(ctx, s.DB(), s.Delete(s.AttachmentTable("att")).Where(squirrel.Eq{s.preprocessColumn("att.id", ""): s.preprocessValue(res.ID, "")}))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return Tx(ctx, s.db, s.config, nil, func(db *sqlx.Tx) (err error) {
|
||||
for _, res := range rr {
|
||||
err = ExecuteSqlizer(ctx, s.DB(), s.Delete(s.AttachmentTable("att")).Where(squirrel.Eq{s.preprocessColumn("att.id", ""): s.preprocessValue(res.ID, "")}))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
})
|
||||
return nil
|
||||
}
|
||||
|
||||
// RemoveAttachmentByID removes row from the attachments table
|
||||
|
||||
@@ -15,7 +15,6 @@ import (
|
||||
"github.com/Masterminds/squirrel"
|
||||
"github.com/cortezaproject/corteza-server/compose/types"
|
||||
"github.com/cortezaproject/corteza-server/store"
|
||||
"github.com/jmoiron/sqlx"
|
||||
"strings"
|
||||
)
|
||||
|
||||
@@ -239,21 +238,15 @@ func (s Store) LookupComposeChartByHandle(ctx context.Context, handle string) (*
|
||||
}
|
||||
|
||||
// CreateComposeChart creates one or more rows in compose_chart table
|
||||
func (s Store) CreateComposeChart(ctx context.Context, rr ...*types.Chart) error {
|
||||
if len(rr) == 0 {
|
||||
return nil
|
||||
func (s Store) CreateComposeChart(ctx context.Context, rr ...*types.Chart) (err error) {
|
||||
for _, res := range rr {
|
||||
err = ExecuteSqlizer(ctx, s.DB(), s.Insert(s.ComposeChartTable()).SetMap(s.internalComposeChartEncoder(res)))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return Tx(ctx, s.db, s.config, nil, func(db *sqlx.Tx) (err error) {
|
||||
for _, res := range rr {
|
||||
err = ExecuteSqlizer(ctx, s.DB(), s.Insert(s.ComposeChartTable()).SetMap(s.internalComposeChartEncoder(res)))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
// UpdateComposeChart updates one or more existing rows in compose_chart
|
||||
@@ -264,42 +257,30 @@ func (s Store) UpdateComposeChart(ctx context.Context, rr ...*types.Chart) error
|
||||
// PartialUpdateComposeChart updates one or more existing rows in compose_chart
|
||||
//
|
||||
// It wraps the update into transaction and can perform partial update by providing list of updatable columns
|
||||
func (s Store) PartialUpdateComposeChart(ctx context.Context, onlyColumns []string, rr ...*types.Chart) error {
|
||||
if len(rr) == 0 {
|
||||
return nil
|
||||
func (s Store) PartialUpdateComposeChart(ctx context.Context, onlyColumns []string, rr ...*types.Chart) (err error) {
|
||||
for _, res := range rr {
|
||||
err = s.ExecUpdateComposeCharts(
|
||||
ctx,
|
||||
squirrel.Eq{s.preprocessColumn("cch.id", ""): s.preprocessValue(res.ID, "")},
|
||||
s.internalComposeChartEncoder(res).Skip("id").Only(onlyColumns...))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return Tx(ctx, s.db, s.config, nil, func(db *sqlx.Tx) (err error) {
|
||||
for _, res := range rr {
|
||||
err = s.ExecUpdateComposeCharts(
|
||||
ctx,
|
||||
squirrel.Eq{s.preprocessColumn("cch.id", ""): s.preprocessValue(res.ID, "")},
|
||||
s.internalComposeChartEncoder(res).Skip("id").Only(onlyColumns...))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
// RemoveComposeChart removes one or more rows from compose_chart table
|
||||
func (s Store) RemoveComposeChart(ctx context.Context, rr ...*types.Chart) error {
|
||||
if len(rr) == 0 {
|
||||
return nil
|
||||
func (s Store) RemoveComposeChart(ctx context.Context, rr ...*types.Chart) (err error) {
|
||||
for _, res := range rr {
|
||||
err = ExecuteSqlizer(ctx, s.DB(), s.Delete(s.ComposeChartTable("cch")).Where(squirrel.Eq{s.preprocessColumn("cch.id", ""): s.preprocessValue(res.ID, "")}))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return Tx(ctx, s.db, s.config, nil, func(db *sqlx.Tx) (err error) {
|
||||
for _, res := range rr {
|
||||
err = ExecuteSqlizer(ctx, s.DB(), s.Delete(s.ComposeChartTable("cch")).Where(squirrel.Eq{s.preprocessColumn("cch.id", ""): s.preprocessValue(res.ID, "")}))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
})
|
||||
return nil
|
||||
}
|
||||
|
||||
// RemoveComposeChartByID removes row from the compose_chart table
|
||||
|
||||
@@ -15,25 +15,18 @@ import (
|
||||
"github.com/Masterminds/squirrel"
|
||||
"github.com/cortezaproject/corteza-server/compose/types"
|
||||
"github.com/cortezaproject/corteza-server/store"
|
||||
"github.com/jmoiron/sqlx"
|
||||
)
|
||||
|
||||
// CreateComposeModuleField creates one or more rows in compose_module_field table
|
||||
func (s Store) CreateComposeModuleField(ctx context.Context, rr ...*types.ModuleField) error {
|
||||
if len(rr) == 0 {
|
||||
return nil
|
||||
func (s Store) CreateComposeModuleField(ctx context.Context, rr ...*types.ModuleField) (err error) {
|
||||
for _, res := range rr {
|
||||
err = ExecuteSqlizer(ctx, s.DB(), s.Insert(s.ComposeModuleFieldTable()).SetMap(s.internalComposeModuleFieldEncoder(res)))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return Tx(ctx, s.db, s.config, nil, func(db *sqlx.Tx) (err error) {
|
||||
for _, res := range rr {
|
||||
err = ExecuteSqlizer(ctx, s.DB(), s.Insert(s.ComposeModuleFieldTable()).SetMap(s.internalComposeModuleFieldEncoder(res)))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
// UpdateComposeModuleField updates one or more existing rows in compose_module_field
|
||||
@@ -44,42 +37,30 @@ func (s Store) UpdateComposeModuleField(ctx context.Context, rr ...*types.Module
|
||||
// PartialUpdateComposeModuleField updates one or more existing rows in compose_module_field
|
||||
//
|
||||
// It wraps the update into transaction and can perform partial update by providing list of updatable columns
|
||||
func (s Store) PartialUpdateComposeModuleField(ctx context.Context, onlyColumns []string, rr ...*types.ModuleField) error {
|
||||
if len(rr) == 0 {
|
||||
return nil
|
||||
func (s Store) PartialUpdateComposeModuleField(ctx context.Context, onlyColumns []string, rr ...*types.ModuleField) (err error) {
|
||||
for _, res := range rr {
|
||||
err = s.ExecUpdateComposeModuleFields(
|
||||
ctx,
|
||||
squirrel.Eq{s.preprocessColumn("cmf.id", ""): s.preprocessValue(res.ID, "")},
|
||||
s.internalComposeModuleFieldEncoder(res).Skip("id").Only(onlyColumns...))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return Tx(ctx, s.db, s.config, nil, func(db *sqlx.Tx) (err error) {
|
||||
for _, res := range rr {
|
||||
err = s.ExecUpdateComposeModuleFields(
|
||||
ctx,
|
||||
squirrel.Eq{s.preprocessColumn("cmf.id", ""): s.preprocessValue(res.ID, "")},
|
||||
s.internalComposeModuleFieldEncoder(res).Skip("id").Only(onlyColumns...))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
// RemoveComposeModuleField removes one or more rows from compose_module_field table
|
||||
func (s Store) RemoveComposeModuleField(ctx context.Context, rr ...*types.ModuleField) error {
|
||||
if len(rr) == 0 {
|
||||
return nil
|
||||
func (s Store) RemoveComposeModuleField(ctx context.Context, rr ...*types.ModuleField) (err error) {
|
||||
for _, res := range rr {
|
||||
err = ExecuteSqlizer(ctx, s.DB(), s.Delete(s.ComposeModuleFieldTable("cmf")).Where(squirrel.Eq{s.preprocessColumn("cmf.id", ""): s.preprocessValue(res.ID, "")}))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return Tx(ctx, s.db, s.config, nil, func(db *sqlx.Tx) (err error) {
|
||||
for _, res := range rr {
|
||||
err = ExecuteSqlizer(ctx, s.DB(), s.Delete(s.ComposeModuleFieldTable("cmf")).Where(squirrel.Eq{s.preprocessColumn("cmf.id", ""): s.preprocessValue(res.ID, "")}))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
})
|
||||
return nil
|
||||
}
|
||||
|
||||
// RemoveComposeModuleFieldByID removes row from the compose_module_field table
|
||||
|
||||
@@ -15,7 +15,6 @@ import (
|
||||
"github.com/Masterminds/squirrel"
|
||||
"github.com/cortezaproject/corteza-server/compose/types"
|
||||
"github.com/cortezaproject/corteza-server/store"
|
||||
"github.com/jmoiron/sqlx"
|
||||
"strings"
|
||||
)
|
||||
|
||||
@@ -239,21 +238,15 @@ func (s Store) LookupComposeModuleByID(ctx context.Context, id uint64) (*types.M
|
||||
}
|
||||
|
||||
// CreateComposeModule creates one or more rows in compose_module table
|
||||
func (s Store) CreateComposeModule(ctx context.Context, rr ...*types.Module) error {
|
||||
if len(rr) == 0 {
|
||||
return nil
|
||||
func (s Store) CreateComposeModule(ctx context.Context, rr ...*types.Module) (err error) {
|
||||
for _, res := range rr {
|
||||
err = ExecuteSqlizer(ctx, s.DB(), s.Insert(s.ComposeModuleTable()).SetMap(s.internalComposeModuleEncoder(res)))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return Tx(ctx, s.db, s.config, nil, func(db *sqlx.Tx) (err error) {
|
||||
for _, res := range rr {
|
||||
err = ExecuteSqlizer(ctx, s.DB(), s.Insert(s.ComposeModuleTable()).SetMap(s.internalComposeModuleEncoder(res)))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
// UpdateComposeModule updates one or more existing rows in compose_module
|
||||
@@ -264,42 +257,30 @@ func (s Store) UpdateComposeModule(ctx context.Context, rr ...*types.Module) err
|
||||
// PartialUpdateComposeModule updates one or more existing rows in compose_module
|
||||
//
|
||||
// It wraps the update into transaction and can perform partial update by providing list of updatable columns
|
||||
func (s Store) PartialUpdateComposeModule(ctx context.Context, onlyColumns []string, rr ...*types.Module) error {
|
||||
if len(rr) == 0 {
|
||||
return nil
|
||||
func (s Store) PartialUpdateComposeModule(ctx context.Context, onlyColumns []string, rr ...*types.Module) (err error) {
|
||||
for _, res := range rr {
|
||||
err = s.ExecUpdateComposeModules(
|
||||
ctx,
|
||||
squirrel.Eq{s.preprocessColumn("cmd.id", ""): s.preprocessValue(res.ID, "")},
|
||||
s.internalComposeModuleEncoder(res).Skip("id").Only(onlyColumns...))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return Tx(ctx, s.db, s.config, nil, func(db *sqlx.Tx) (err error) {
|
||||
for _, res := range rr {
|
||||
err = s.ExecUpdateComposeModules(
|
||||
ctx,
|
||||
squirrel.Eq{s.preprocessColumn("cmd.id", ""): s.preprocessValue(res.ID, "")},
|
||||
s.internalComposeModuleEncoder(res).Skip("id").Only(onlyColumns...))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
// RemoveComposeModule removes one or more rows from compose_module table
|
||||
func (s Store) RemoveComposeModule(ctx context.Context, rr ...*types.Module) error {
|
||||
if len(rr) == 0 {
|
||||
return nil
|
||||
func (s Store) RemoveComposeModule(ctx context.Context, rr ...*types.Module) (err error) {
|
||||
for _, res := range rr {
|
||||
err = ExecuteSqlizer(ctx, s.DB(), s.Delete(s.ComposeModuleTable("cmd")).Where(squirrel.Eq{s.preprocessColumn("cmd.id", ""): s.preprocessValue(res.ID, "")}))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return Tx(ctx, s.db, s.config, nil, func(db *sqlx.Tx) (err error) {
|
||||
for _, res := range rr {
|
||||
err = ExecuteSqlizer(ctx, s.DB(), s.Delete(s.ComposeModuleTable("cmd")).Where(squirrel.Eq{s.preprocessColumn("cmd.id", ""): s.preprocessValue(res.ID, "")}))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
})
|
||||
return nil
|
||||
}
|
||||
|
||||
// RemoveComposeModuleByID removes row from the compose_module table
|
||||
|
||||
@@ -15,7 +15,6 @@ import (
|
||||
"github.com/Masterminds/squirrel"
|
||||
"github.com/cortezaproject/corteza-server/compose/types"
|
||||
"github.com/cortezaproject/corteza-server/store"
|
||||
"github.com/jmoiron/sqlx"
|
||||
"strings"
|
||||
)
|
||||
|
||||
@@ -239,21 +238,15 @@ func (s Store) LookupComposeNamespaceByID(ctx context.Context, id uint64) (*type
|
||||
}
|
||||
|
||||
// CreateComposeNamespace creates one or more rows in compose_namespace table
|
||||
func (s Store) CreateComposeNamespace(ctx context.Context, rr ...*types.Namespace) error {
|
||||
if len(rr) == 0 {
|
||||
return nil
|
||||
func (s Store) CreateComposeNamespace(ctx context.Context, rr ...*types.Namespace) (err error) {
|
||||
for _, res := range rr {
|
||||
err = ExecuteSqlizer(ctx, s.DB(), s.Insert(s.ComposeNamespaceTable()).SetMap(s.internalComposeNamespaceEncoder(res)))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return Tx(ctx, s.db, s.config, nil, func(db *sqlx.Tx) (err error) {
|
||||
for _, res := range rr {
|
||||
err = ExecuteSqlizer(ctx, s.DB(), s.Insert(s.ComposeNamespaceTable()).SetMap(s.internalComposeNamespaceEncoder(res)))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
// UpdateComposeNamespace updates one or more existing rows in compose_namespace
|
||||
@@ -264,42 +257,30 @@ func (s Store) UpdateComposeNamespace(ctx context.Context, rr ...*types.Namespac
|
||||
// PartialUpdateComposeNamespace updates one or more existing rows in compose_namespace
|
||||
//
|
||||
// It wraps the update into transaction and can perform partial update by providing list of updatable columns
|
||||
func (s Store) PartialUpdateComposeNamespace(ctx context.Context, onlyColumns []string, rr ...*types.Namespace) error {
|
||||
if len(rr) == 0 {
|
||||
return nil
|
||||
func (s Store) PartialUpdateComposeNamespace(ctx context.Context, onlyColumns []string, rr ...*types.Namespace) (err error) {
|
||||
for _, res := range rr {
|
||||
err = s.ExecUpdateComposeNamespaces(
|
||||
ctx,
|
||||
squirrel.Eq{s.preprocessColumn("cns.id", ""): s.preprocessValue(res.ID, "")},
|
||||
s.internalComposeNamespaceEncoder(res).Skip("id").Only(onlyColumns...))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return Tx(ctx, s.db, s.config, nil, func(db *sqlx.Tx) (err error) {
|
||||
for _, res := range rr {
|
||||
err = s.ExecUpdateComposeNamespaces(
|
||||
ctx,
|
||||
squirrel.Eq{s.preprocessColumn("cns.id", ""): s.preprocessValue(res.ID, "")},
|
||||
s.internalComposeNamespaceEncoder(res).Skip("id").Only(onlyColumns...))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
// RemoveComposeNamespace removes one or more rows from compose_namespace table
|
||||
func (s Store) RemoveComposeNamespace(ctx context.Context, rr ...*types.Namespace) error {
|
||||
if len(rr) == 0 {
|
||||
return nil
|
||||
func (s Store) RemoveComposeNamespace(ctx context.Context, rr ...*types.Namespace) (err error) {
|
||||
for _, res := range rr {
|
||||
err = ExecuteSqlizer(ctx, s.DB(), s.Delete(s.ComposeNamespaceTable("cns")).Where(squirrel.Eq{s.preprocessColumn("cns.id", ""): s.preprocessValue(res.ID, "")}))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return Tx(ctx, s.db, s.config, nil, func(db *sqlx.Tx) (err error) {
|
||||
for _, res := range rr {
|
||||
err = ExecuteSqlizer(ctx, s.DB(), s.Delete(s.ComposeNamespaceTable("cns")).Where(squirrel.Eq{s.preprocessColumn("cns.id", ""): s.preprocessValue(res.ID, "")}))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
})
|
||||
return nil
|
||||
}
|
||||
|
||||
// RemoveComposeNamespaceByID removes row from the compose_namespace table
|
||||
|
||||
@@ -15,7 +15,6 @@ import (
|
||||
"github.com/Masterminds/squirrel"
|
||||
"github.com/cortezaproject/corteza-server/compose/types"
|
||||
"github.com/cortezaproject/corteza-server/store"
|
||||
"github.com/jmoiron/sqlx"
|
||||
"strings"
|
||||
)
|
||||
|
||||
@@ -239,21 +238,15 @@ func (s Store) LookupComposePageByID(ctx context.Context, id uint64) (*types.Pag
|
||||
}
|
||||
|
||||
// CreateComposePage creates one or more rows in compose_page table
|
||||
func (s Store) CreateComposePage(ctx context.Context, rr ...*types.Page) error {
|
||||
if len(rr) == 0 {
|
||||
return nil
|
||||
func (s Store) CreateComposePage(ctx context.Context, rr ...*types.Page) (err error) {
|
||||
for _, res := range rr {
|
||||
err = ExecuteSqlizer(ctx, s.DB(), s.Insert(s.ComposePageTable()).SetMap(s.internalComposePageEncoder(res)))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return Tx(ctx, s.db, s.config, nil, func(db *sqlx.Tx) (err error) {
|
||||
for _, res := range rr {
|
||||
err = ExecuteSqlizer(ctx, s.DB(), s.Insert(s.ComposePageTable()).SetMap(s.internalComposePageEncoder(res)))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
// UpdateComposePage updates one or more existing rows in compose_page
|
||||
@@ -264,42 +257,30 @@ func (s Store) UpdateComposePage(ctx context.Context, rr ...*types.Page) error {
|
||||
// PartialUpdateComposePage updates one or more existing rows in compose_page
|
||||
//
|
||||
// It wraps the update into transaction and can perform partial update by providing list of updatable columns
|
||||
func (s Store) PartialUpdateComposePage(ctx context.Context, onlyColumns []string, rr ...*types.Page) error {
|
||||
if len(rr) == 0 {
|
||||
return nil
|
||||
func (s Store) PartialUpdateComposePage(ctx context.Context, onlyColumns []string, rr ...*types.Page) (err error) {
|
||||
for _, res := range rr {
|
||||
err = s.ExecUpdateComposePages(
|
||||
ctx,
|
||||
squirrel.Eq{s.preprocessColumn("cpg.id", ""): s.preprocessValue(res.ID, "")},
|
||||
s.internalComposePageEncoder(res).Skip("id").Only(onlyColumns...))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return Tx(ctx, s.db, s.config, nil, func(db *sqlx.Tx) (err error) {
|
||||
for _, res := range rr {
|
||||
err = s.ExecUpdateComposePages(
|
||||
ctx,
|
||||
squirrel.Eq{s.preprocessColumn("cpg.id", ""): s.preprocessValue(res.ID, "")},
|
||||
s.internalComposePageEncoder(res).Skip("id").Only(onlyColumns...))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
// RemoveComposePage removes one or more rows from compose_page table
|
||||
func (s Store) RemoveComposePage(ctx context.Context, rr ...*types.Page) error {
|
||||
if len(rr) == 0 {
|
||||
return nil
|
||||
func (s Store) RemoveComposePage(ctx context.Context, rr ...*types.Page) (err error) {
|
||||
for _, res := range rr {
|
||||
err = ExecuteSqlizer(ctx, s.DB(), s.Delete(s.ComposePageTable("cpg")).Where(squirrel.Eq{s.preprocessColumn("cpg.id", ""): s.preprocessValue(res.ID, "")}))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return Tx(ctx, s.db, s.config, nil, func(db *sqlx.Tx) (err error) {
|
||||
for _, res := range rr {
|
||||
err = ExecuteSqlizer(ctx, s.DB(), s.Delete(s.ComposePageTable("cpg")).Where(squirrel.Eq{s.preprocessColumn("cpg.id", ""): s.preprocessValue(res.ID, "")}))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
})
|
||||
return nil
|
||||
}
|
||||
|
||||
// RemoveComposePageByID removes row from the compose_page table
|
||||
|
||||
@@ -15,7 +15,6 @@ import (
|
||||
"github.com/Masterminds/squirrel"
|
||||
"github.com/cortezaproject/corteza-server/store"
|
||||
"github.com/cortezaproject/corteza-server/system/types"
|
||||
"github.com/jmoiron/sqlx"
|
||||
)
|
||||
|
||||
// SearchCredentials returns all matching rows
|
||||
@@ -77,21 +76,15 @@ func (s Store) LookupCredentialsByID(ctx context.Context, id uint64) (*types.Cre
|
||||
}
|
||||
|
||||
// CreateCredentials creates one or more rows in credentials table
|
||||
func (s Store) CreateCredentials(ctx context.Context, rr ...*types.Credentials) error {
|
||||
if len(rr) == 0 {
|
||||
return nil
|
||||
func (s Store) CreateCredentials(ctx context.Context, rr ...*types.Credentials) (err error) {
|
||||
for _, res := range rr {
|
||||
err = ExecuteSqlizer(ctx, s.DB(), s.Insert(s.CredentialsTable()).SetMap(s.internalCredentialsEncoder(res)))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return Tx(ctx, s.db, s.config, nil, func(db *sqlx.Tx) (err error) {
|
||||
for _, res := range rr {
|
||||
err = ExecuteSqlizer(ctx, s.DB(), s.Insert(s.CredentialsTable()).SetMap(s.internalCredentialsEncoder(res)))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
// UpdateCredentials updates one or more existing rows in credentials
|
||||
@@ -102,42 +95,30 @@ func (s Store) UpdateCredentials(ctx context.Context, rr ...*types.Credentials)
|
||||
// PartialUpdateCredentials updates one or more existing rows in credentials
|
||||
//
|
||||
// It wraps the update into transaction and can perform partial update by providing list of updatable columns
|
||||
func (s Store) PartialUpdateCredentials(ctx context.Context, onlyColumns []string, rr ...*types.Credentials) error {
|
||||
if len(rr) == 0 {
|
||||
return nil
|
||||
func (s Store) PartialUpdateCredentials(ctx context.Context, onlyColumns []string, rr ...*types.Credentials) (err error) {
|
||||
for _, res := range rr {
|
||||
err = s.ExecUpdateCredentials(
|
||||
ctx,
|
||||
squirrel.Eq{s.preprocessColumn("crd.id", ""): s.preprocessValue(res.ID, "")},
|
||||
s.internalCredentialsEncoder(res).Skip("id").Only(onlyColumns...))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return Tx(ctx, s.db, s.config, nil, func(db *sqlx.Tx) (err error) {
|
||||
for _, res := range rr {
|
||||
err = s.ExecUpdateCredentials(
|
||||
ctx,
|
||||
squirrel.Eq{s.preprocessColumn("crd.id", ""): s.preprocessValue(res.ID, "")},
|
||||
s.internalCredentialsEncoder(res).Skip("id").Only(onlyColumns...))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
// RemoveCredentials removes one or more rows from credentials table
|
||||
func (s Store) RemoveCredentials(ctx context.Context, rr ...*types.Credentials) error {
|
||||
if len(rr) == 0 {
|
||||
return nil
|
||||
func (s Store) RemoveCredentials(ctx context.Context, rr ...*types.Credentials) (err error) {
|
||||
for _, res := range rr {
|
||||
err = ExecuteSqlizer(ctx, s.DB(), s.Delete(s.CredentialsTable("crd")).Where(squirrel.Eq{s.preprocessColumn("crd.id", ""): s.preprocessValue(res.ID, "")}))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return Tx(ctx, s.db, s.config, nil, func(db *sqlx.Tx) (err error) {
|
||||
for _, res := range rr {
|
||||
err = ExecuteSqlizer(ctx, s.DB(), s.Delete(s.CredentialsTable("crd")).Where(squirrel.Eq{s.preprocessColumn("crd.id", ""): s.preprocessValue(res.ID, "")}))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
})
|
||||
return nil
|
||||
}
|
||||
|
||||
// RemoveCredentialsByID removes row from the credentials table
|
||||
|
||||
@@ -15,7 +15,6 @@ import (
|
||||
"github.com/Masterminds/squirrel"
|
||||
"github.com/cortezaproject/corteza-server/pkg/permissions"
|
||||
"github.com/cortezaproject/corteza-server/store"
|
||||
"github.com/jmoiron/sqlx"
|
||||
)
|
||||
|
||||
// SearchRbacRules returns all matching rows
|
||||
@@ -65,21 +64,15 @@ func (s Store) SearchRbacRules(ctx context.Context, f permissions.RuleFilter) (p
|
||||
}
|
||||
|
||||
// CreateRbacRule creates one or more rows in rbac_rules table
|
||||
func (s Store) CreateRbacRule(ctx context.Context, rr ...*permissions.Rule) error {
|
||||
if len(rr) == 0 {
|
||||
return nil
|
||||
func (s Store) CreateRbacRule(ctx context.Context, rr ...*permissions.Rule) (err error) {
|
||||
for _, res := range rr {
|
||||
err = ExecuteSqlizer(ctx, s.DB(), s.Insert(s.RbacRuleTable()).SetMap(s.internalRbacRuleEncoder(res)))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return Tx(ctx, s.db, s.config, nil, func(db *sqlx.Tx) (err error) {
|
||||
for _, res := range rr {
|
||||
err = ExecuteSqlizer(ctx, s.DB(), s.Insert(s.RbacRuleTable()).SetMap(s.internalRbacRuleEncoder(res)))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
// UpdateRbacRule updates one or more existing rows in rbac_rules
|
||||
@@ -90,48 +83,36 @@ func (s Store) UpdateRbacRule(ctx context.Context, rr ...*permissions.Rule) erro
|
||||
// PartialUpdateRbacRule updates one or more existing rows in rbac_rules
|
||||
//
|
||||
// It wraps the update into transaction and can perform partial update by providing list of updatable columns
|
||||
func (s Store) PartialUpdateRbacRule(ctx context.Context, onlyColumns []string, rr ...*permissions.Rule) error {
|
||||
if len(rr) == 0 {
|
||||
return nil
|
||||
func (s Store) PartialUpdateRbacRule(ctx context.Context, onlyColumns []string, rr ...*permissions.Rule) (err error) {
|
||||
for _, res := range rr {
|
||||
err = s.ExecUpdateRbacRules(
|
||||
ctx,
|
||||
squirrel.Eq{s.preprocessColumn("rls.rel_role", ""): s.preprocessValue(res.RoleID, ""),
|
||||
s.preprocessColumn("rls.resource", ""): s.preprocessValue(res.Resource, ""),
|
||||
s.preprocessColumn("rls.operation", ""): s.preprocessValue(res.Operation, ""),
|
||||
},
|
||||
s.internalRbacRuleEncoder(res).Skip("rel_role", "resource", "operation").Only(onlyColumns...))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return Tx(ctx, s.db, s.config, nil, func(db *sqlx.Tx) (err error) {
|
||||
for _, res := range rr {
|
||||
err = s.ExecUpdateRbacRules(
|
||||
ctx,
|
||||
squirrel.Eq{s.preprocessColumn("rls.rel_role", ""): s.preprocessValue(res.RoleID, ""),
|
||||
s.preprocessColumn("rls.resource", ""): s.preprocessValue(res.Resource, ""),
|
||||
s.preprocessColumn("rls.operation", ""): s.preprocessValue(res.Operation, ""),
|
||||
},
|
||||
s.internalRbacRuleEncoder(res).Skip("rel_role", "resource", "operation").Only(onlyColumns...))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
// RemoveRbacRule removes one or more rows from rbac_rules table
|
||||
func (s Store) RemoveRbacRule(ctx context.Context, rr ...*permissions.Rule) error {
|
||||
if len(rr) == 0 {
|
||||
return nil
|
||||
func (s Store) RemoveRbacRule(ctx context.Context, rr ...*permissions.Rule) (err error) {
|
||||
for _, res := range rr {
|
||||
err = ExecuteSqlizer(ctx, s.DB(), s.Delete(s.RbacRuleTable("rls")).Where(squirrel.Eq{s.preprocessColumn("rls.rel_role", ""): s.preprocessValue(res.RoleID, ""),
|
||||
s.preprocessColumn("rls.resource", ""): s.preprocessValue(res.Resource, ""),
|
||||
s.preprocessColumn("rls.operation", ""): s.preprocessValue(res.Operation, ""),
|
||||
}))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return Tx(ctx, s.db, s.config, nil, func(db *sqlx.Tx) (err error) {
|
||||
for _, res := range rr {
|
||||
err = ExecuteSqlizer(ctx, s.DB(), s.Delete(s.RbacRuleTable("rls")).Where(squirrel.Eq{s.preprocessColumn("rls.rel_role", ""): s.preprocessValue(res.RoleID, ""),
|
||||
s.preprocessColumn("rls.resource", ""): s.preprocessValue(res.Resource, ""),
|
||||
s.preprocessColumn("rls.operation", ""): s.preprocessValue(res.Operation, ""),
|
||||
}))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
})
|
||||
return nil
|
||||
}
|
||||
|
||||
// RemoveRbacRuleByRoleIDResourceOperation removes row from the rbac_rules table
|
||||
|
||||
@@ -15,7 +15,6 @@ import (
|
||||
"github.com/Masterminds/squirrel"
|
||||
"github.com/cortezaproject/corteza-server/store"
|
||||
"github.com/cortezaproject/corteza-server/system/types"
|
||||
"github.com/jmoiron/sqlx"
|
||||
"strings"
|
||||
)
|
||||
|
||||
@@ -232,21 +231,15 @@ func (s Store) LookupReminderByID(ctx context.Context, id uint64) (*types.Remind
|
||||
}
|
||||
|
||||
// CreateReminder creates one or more rows in reminders table
|
||||
func (s Store) CreateReminder(ctx context.Context, rr ...*types.Reminder) error {
|
||||
if len(rr) == 0 {
|
||||
return nil
|
||||
func (s Store) CreateReminder(ctx context.Context, rr ...*types.Reminder) (err error) {
|
||||
for _, res := range rr {
|
||||
err = ExecuteSqlizer(ctx, s.DB(), s.Insert(s.ReminderTable()).SetMap(s.internalReminderEncoder(res)))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return Tx(ctx, s.db, s.config, nil, func(db *sqlx.Tx) (err error) {
|
||||
for _, res := range rr {
|
||||
err = ExecuteSqlizer(ctx, s.DB(), s.Insert(s.ReminderTable()).SetMap(s.internalReminderEncoder(res)))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
// UpdateReminder updates one or more existing rows in reminders
|
||||
@@ -257,42 +250,30 @@ func (s Store) UpdateReminder(ctx context.Context, rr ...*types.Reminder) error
|
||||
// PartialUpdateReminder updates one or more existing rows in reminders
|
||||
//
|
||||
// It wraps the update into transaction and can perform partial update by providing list of updatable columns
|
||||
func (s Store) PartialUpdateReminder(ctx context.Context, onlyColumns []string, rr ...*types.Reminder) error {
|
||||
if len(rr) == 0 {
|
||||
return nil
|
||||
func (s Store) PartialUpdateReminder(ctx context.Context, onlyColumns []string, rr ...*types.Reminder) (err error) {
|
||||
for _, res := range rr {
|
||||
err = s.ExecUpdateReminders(
|
||||
ctx,
|
||||
squirrel.Eq{s.preprocessColumn("rmd.id", ""): s.preprocessValue(res.ID, "")},
|
||||
s.internalReminderEncoder(res).Skip("id").Only(onlyColumns...))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return Tx(ctx, s.db, s.config, nil, func(db *sqlx.Tx) (err error) {
|
||||
for _, res := range rr {
|
||||
err = s.ExecUpdateReminders(
|
||||
ctx,
|
||||
squirrel.Eq{s.preprocessColumn("rmd.id", ""): s.preprocessValue(res.ID, "")},
|
||||
s.internalReminderEncoder(res).Skip("id").Only(onlyColumns...))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
// RemoveReminder removes one or more rows from reminders table
|
||||
func (s Store) RemoveReminder(ctx context.Context, rr ...*types.Reminder) error {
|
||||
if len(rr) == 0 {
|
||||
return nil
|
||||
func (s Store) RemoveReminder(ctx context.Context, rr ...*types.Reminder) (err error) {
|
||||
for _, res := range rr {
|
||||
err = ExecuteSqlizer(ctx, s.DB(), s.Delete(s.ReminderTable("rmd")).Where(squirrel.Eq{s.preprocessColumn("rmd.id", ""): s.preprocessValue(res.ID, "")}))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return Tx(ctx, s.db, s.config, nil, func(db *sqlx.Tx) (err error) {
|
||||
for _, res := range rr {
|
||||
err = ExecuteSqlizer(ctx, s.DB(), s.Delete(s.ReminderTable("rmd")).Where(squirrel.Eq{s.preprocessColumn("rmd.id", ""): s.preprocessValue(res.ID, "")}))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
})
|
||||
return nil
|
||||
}
|
||||
|
||||
// RemoveReminderByID removes row from the reminders table
|
||||
|
||||
@@ -15,7 +15,6 @@ import (
|
||||
"github.com/Masterminds/squirrel"
|
||||
"github.com/cortezaproject/corteza-server/store"
|
||||
"github.com/cortezaproject/corteza-server/system/types"
|
||||
"github.com/jmoiron/sqlx"
|
||||
)
|
||||
|
||||
// SearchRoleMembers returns all matching rows
|
||||
@@ -65,21 +64,15 @@ func (s Store) SearchRoleMembers(ctx context.Context, f types.RoleMemberFilter)
|
||||
}
|
||||
|
||||
// CreateRoleMember creates one or more rows in role_members table
|
||||
func (s Store) CreateRoleMember(ctx context.Context, rr ...*types.RoleMember) error {
|
||||
if len(rr) == 0 {
|
||||
return nil
|
||||
func (s Store) CreateRoleMember(ctx context.Context, rr ...*types.RoleMember) (err error) {
|
||||
for _, res := range rr {
|
||||
err = ExecuteSqlizer(ctx, s.DB(), s.Insert(s.RoleMemberTable()).SetMap(s.internalRoleMemberEncoder(res)))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return Tx(ctx, s.db, s.config, nil, func(db *sqlx.Tx) (err error) {
|
||||
for _, res := range rr {
|
||||
err = ExecuteSqlizer(ctx, s.DB(), s.Insert(s.RoleMemberTable()).SetMap(s.internalRoleMemberEncoder(res)))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
// UpdateRoleMember updates one or more existing rows in role_members
|
||||
@@ -90,46 +83,34 @@ func (s Store) UpdateRoleMember(ctx context.Context, rr ...*types.RoleMember) er
|
||||
// PartialUpdateRoleMember updates one or more existing rows in role_members
|
||||
//
|
||||
// It wraps the update into transaction and can perform partial update by providing list of updatable columns
|
||||
func (s Store) PartialUpdateRoleMember(ctx context.Context, onlyColumns []string, rr ...*types.RoleMember) error {
|
||||
if len(rr) == 0 {
|
||||
return nil
|
||||
func (s Store) PartialUpdateRoleMember(ctx context.Context, onlyColumns []string, rr ...*types.RoleMember) (err error) {
|
||||
for _, res := range rr {
|
||||
err = s.ExecUpdateRoleMembers(
|
||||
ctx,
|
||||
squirrel.Eq{s.preprocessColumn("rm.rel_user", ""): s.preprocessValue(res.UserID, ""),
|
||||
s.preprocessColumn("rm.rel_role", ""): s.preprocessValue(res.RoleID, ""),
|
||||
},
|
||||
s.internalRoleMemberEncoder(res).Skip("rel_user", "rel_role").Only(onlyColumns...))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return Tx(ctx, s.db, s.config, nil, func(db *sqlx.Tx) (err error) {
|
||||
for _, res := range rr {
|
||||
err = s.ExecUpdateRoleMembers(
|
||||
ctx,
|
||||
squirrel.Eq{s.preprocessColumn("rm.rel_user", ""): s.preprocessValue(res.UserID, ""),
|
||||
s.preprocessColumn("rm.rel_role", ""): s.preprocessValue(res.RoleID, ""),
|
||||
},
|
||||
s.internalRoleMemberEncoder(res).Skip("rel_user", "rel_role").Only(onlyColumns...))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
// RemoveRoleMember removes one or more rows from role_members table
|
||||
func (s Store) RemoveRoleMember(ctx context.Context, rr ...*types.RoleMember) error {
|
||||
if len(rr) == 0 {
|
||||
return nil
|
||||
func (s Store) RemoveRoleMember(ctx context.Context, rr ...*types.RoleMember) (err error) {
|
||||
for _, res := range rr {
|
||||
err = ExecuteSqlizer(ctx, s.DB(), s.Delete(s.RoleMemberTable("rm")).Where(squirrel.Eq{s.preprocessColumn("rm.rel_user", ""): s.preprocessValue(res.UserID, ""),
|
||||
s.preprocessColumn("rm.rel_role", ""): s.preprocessValue(res.RoleID, ""),
|
||||
}))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return Tx(ctx, s.db, s.config, nil, func(db *sqlx.Tx) (err error) {
|
||||
for _, res := range rr {
|
||||
err = ExecuteSqlizer(ctx, s.DB(), s.Delete(s.RoleMemberTable("rm")).Where(squirrel.Eq{s.preprocessColumn("rm.rel_user", ""): s.preprocessValue(res.UserID, ""),
|
||||
s.preprocessColumn("rm.rel_role", ""): s.preprocessValue(res.RoleID, ""),
|
||||
}))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
})
|
||||
return nil
|
||||
}
|
||||
|
||||
// RemoveRoleMemberByUserIDRoleID removes row from the role_members table
|
||||
|
||||
@@ -15,7 +15,6 @@ import (
|
||||
"github.com/Masterminds/squirrel"
|
||||
"github.com/cortezaproject/corteza-server/store"
|
||||
"github.com/cortezaproject/corteza-server/system/types"
|
||||
"github.com/jmoiron/sqlx"
|
||||
"strings"
|
||||
)
|
||||
|
||||
@@ -254,21 +253,15 @@ func (s Store) LookupRoleByName(ctx context.Context, name string) (*types.Role,
|
||||
}
|
||||
|
||||
// CreateRole creates one or more rows in roles table
|
||||
func (s Store) CreateRole(ctx context.Context, rr ...*types.Role) error {
|
||||
if len(rr) == 0 {
|
||||
return nil
|
||||
func (s Store) CreateRole(ctx context.Context, rr ...*types.Role) (err error) {
|
||||
for _, res := range rr {
|
||||
err = ExecuteSqlizer(ctx, s.DB(), s.Insert(s.RoleTable()).SetMap(s.internalRoleEncoder(res)))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return Tx(ctx, s.db, s.config, nil, func(db *sqlx.Tx) (err error) {
|
||||
for _, res := range rr {
|
||||
err = ExecuteSqlizer(ctx, s.DB(), s.Insert(s.RoleTable()).SetMap(s.internalRoleEncoder(res)))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
// UpdateRole updates one or more existing rows in roles
|
||||
@@ -279,42 +272,30 @@ func (s Store) UpdateRole(ctx context.Context, rr ...*types.Role) error {
|
||||
// PartialUpdateRole updates one or more existing rows in roles
|
||||
//
|
||||
// It wraps the update into transaction and can perform partial update by providing list of updatable columns
|
||||
func (s Store) PartialUpdateRole(ctx context.Context, onlyColumns []string, rr ...*types.Role) error {
|
||||
if len(rr) == 0 {
|
||||
return nil
|
||||
func (s Store) PartialUpdateRole(ctx context.Context, onlyColumns []string, rr ...*types.Role) (err error) {
|
||||
for _, res := range rr {
|
||||
err = s.ExecUpdateRoles(
|
||||
ctx,
|
||||
squirrel.Eq{s.preprocessColumn("rl.id", ""): s.preprocessValue(res.ID, "")},
|
||||
s.internalRoleEncoder(res).Skip("id").Only(onlyColumns...))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return Tx(ctx, s.db, s.config, nil, func(db *sqlx.Tx) (err error) {
|
||||
for _, res := range rr {
|
||||
err = s.ExecUpdateRoles(
|
||||
ctx,
|
||||
squirrel.Eq{s.preprocessColumn("rl.id", ""): s.preprocessValue(res.ID, "")},
|
||||
s.internalRoleEncoder(res).Skip("id").Only(onlyColumns...))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
// RemoveRole removes one or more rows from roles table
|
||||
func (s Store) RemoveRole(ctx context.Context, rr ...*types.Role) error {
|
||||
if len(rr) == 0 {
|
||||
return nil
|
||||
func (s Store) RemoveRole(ctx context.Context, rr ...*types.Role) (err error) {
|
||||
for _, res := range rr {
|
||||
err = ExecuteSqlizer(ctx, s.DB(), s.Delete(s.RoleTable("rl")).Where(squirrel.Eq{s.preprocessColumn("rl.id", ""): s.preprocessValue(res.ID, "")}))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return Tx(ctx, s.db, s.config, nil, func(db *sqlx.Tx) (err error) {
|
||||
for _, res := range rr {
|
||||
err = ExecuteSqlizer(ctx, s.DB(), s.Delete(s.RoleTable("rl")).Where(squirrel.Eq{s.preprocessColumn("rl.id", ""): s.preprocessValue(res.ID, "")}))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
})
|
||||
return nil
|
||||
}
|
||||
|
||||
// RemoveRoleByID removes row from the roles table
|
||||
|
||||
@@ -15,7 +15,6 @@ import (
|
||||
"github.com/Masterminds/squirrel"
|
||||
"github.com/cortezaproject/corteza-server/store"
|
||||
"github.com/cortezaproject/corteza-server/system/types"
|
||||
"github.com/jmoiron/sqlx"
|
||||
)
|
||||
|
||||
// SearchSettings returns all matching rows
|
||||
@@ -76,21 +75,15 @@ func (s Store) LookupSettingByNameOwnedBy(ctx context.Context, name string, owne
|
||||
}
|
||||
|
||||
// CreateSetting creates one or more rows in settings table
|
||||
func (s Store) CreateSetting(ctx context.Context, rr ...*types.SettingValue) error {
|
||||
if len(rr) == 0 {
|
||||
return nil
|
||||
func (s Store) CreateSetting(ctx context.Context, rr ...*types.SettingValue) (err error) {
|
||||
for _, res := range rr {
|
||||
err = ExecuteSqlizer(ctx, s.DB(), s.Insert(s.SettingTable()).SetMap(s.internalSettingEncoder(res)))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return Tx(ctx, s.db, s.config, nil, func(db *sqlx.Tx) (err error) {
|
||||
for _, res := range rr {
|
||||
err = ExecuteSqlizer(ctx, s.DB(), s.Insert(s.SettingTable()).SetMap(s.internalSettingEncoder(res)))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
// UpdateSetting updates one or more existing rows in settings
|
||||
@@ -101,46 +94,34 @@ func (s Store) UpdateSetting(ctx context.Context, rr ...*types.SettingValue) err
|
||||
// PartialUpdateSetting updates one or more existing rows in settings
|
||||
//
|
||||
// It wraps the update into transaction and can perform partial update by providing list of updatable columns
|
||||
func (s Store) PartialUpdateSetting(ctx context.Context, onlyColumns []string, rr ...*types.SettingValue) error {
|
||||
if len(rr) == 0 {
|
||||
return nil
|
||||
func (s Store) PartialUpdateSetting(ctx context.Context, onlyColumns []string, rr ...*types.SettingValue) (err error) {
|
||||
for _, res := range rr {
|
||||
err = s.ExecUpdateSettings(
|
||||
ctx,
|
||||
squirrel.Eq{s.preprocessColumn("st.name", ""): s.preprocessValue(res.Name, ""),
|
||||
s.preprocessColumn("st.rel_owner", ""): s.preprocessValue(res.OwnedBy, ""),
|
||||
},
|
||||
s.internalSettingEncoder(res).Skip("name", "rel_owner").Only(onlyColumns...))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return Tx(ctx, s.db, s.config, nil, func(db *sqlx.Tx) (err error) {
|
||||
for _, res := range rr {
|
||||
err = s.ExecUpdateSettings(
|
||||
ctx,
|
||||
squirrel.Eq{s.preprocessColumn("st.name", ""): s.preprocessValue(res.Name, ""),
|
||||
s.preprocessColumn("st.rel_owner", ""): s.preprocessValue(res.OwnedBy, ""),
|
||||
},
|
||||
s.internalSettingEncoder(res).Skip("name", "rel_owner").Only(onlyColumns...))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
// RemoveSetting removes one or more rows from settings table
|
||||
func (s Store) RemoveSetting(ctx context.Context, rr ...*types.SettingValue) error {
|
||||
if len(rr) == 0 {
|
||||
return nil
|
||||
func (s Store) RemoveSetting(ctx context.Context, rr ...*types.SettingValue) (err error) {
|
||||
for _, res := range rr {
|
||||
err = ExecuteSqlizer(ctx, s.DB(), s.Delete(s.SettingTable("st")).Where(squirrel.Eq{s.preprocessColumn("st.name", ""): s.preprocessValue(res.Name, ""),
|
||||
s.preprocessColumn("st.rel_owner", ""): s.preprocessValue(res.OwnedBy, ""),
|
||||
}))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return Tx(ctx, s.db, s.config, nil, func(db *sqlx.Tx) (err error) {
|
||||
for _, res := range rr {
|
||||
err = ExecuteSqlizer(ctx, s.DB(), s.Delete(s.SettingTable("st")).Where(squirrel.Eq{s.preprocessColumn("st.name", ""): s.preprocessValue(res.Name, ""),
|
||||
s.preprocessColumn("st.rel_owner", ""): s.preprocessValue(res.OwnedBy, ""),
|
||||
}))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
})
|
||||
return nil
|
||||
}
|
||||
|
||||
// RemoveSettingByNameOwnedBy removes row from the settings table
|
||||
|
||||
@@ -15,7 +15,6 @@ import (
|
||||
"github.com/Masterminds/squirrel"
|
||||
"github.com/cortezaproject/corteza-server/store"
|
||||
"github.com/cortezaproject/corteza-server/system/types"
|
||||
"github.com/jmoiron/sqlx"
|
||||
"strings"
|
||||
)
|
||||
|
||||
@@ -265,21 +264,15 @@ func (s Store) LookupUserByUsername(ctx context.Context, username string) (*type
|
||||
}
|
||||
|
||||
// CreateUser creates one or more rows in users table
|
||||
func (s Store) CreateUser(ctx context.Context, rr ...*types.User) error {
|
||||
if len(rr) == 0 {
|
||||
return nil
|
||||
func (s Store) CreateUser(ctx context.Context, rr ...*types.User) (err error) {
|
||||
for _, res := range rr {
|
||||
err = ExecuteSqlizer(ctx, s.DB(), s.Insert(s.UserTable()).SetMap(s.internalUserEncoder(res)))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return Tx(ctx, s.db, s.config, nil, func(db *sqlx.Tx) (err error) {
|
||||
for _, res := range rr {
|
||||
err = ExecuteSqlizer(ctx, s.DB(), s.Insert(s.UserTable()).SetMap(s.internalUserEncoder(res)))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
// UpdateUser updates one or more existing rows in users
|
||||
@@ -290,42 +283,30 @@ func (s Store) UpdateUser(ctx context.Context, rr ...*types.User) error {
|
||||
// PartialUpdateUser updates one or more existing rows in users
|
||||
//
|
||||
// It wraps the update into transaction and can perform partial update by providing list of updatable columns
|
||||
func (s Store) PartialUpdateUser(ctx context.Context, onlyColumns []string, rr ...*types.User) error {
|
||||
if len(rr) == 0 {
|
||||
return nil
|
||||
func (s Store) PartialUpdateUser(ctx context.Context, onlyColumns []string, rr ...*types.User) (err error) {
|
||||
for _, res := range rr {
|
||||
err = s.ExecUpdateUsers(
|
||||
ctx,
|
||||
squirrel.Eq{s.preprocessColumn("usr.id", ""): s.preprocessValue(res.ID, "")},
|
||||
s.internalUserEncoder(res).Skip("id").Only(onlyColumns...))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return Tx(ctx, s.db, s.config, nil, func(db *sqlx.Tx) (err error) {
|
||||
for _, res := range rr {
|
||||
err = s.ExecUpdateUsers(
|
||||
ctx,
|
||||
squirrel.Eq{s.preprocessColumn("usr.id", ""): s.preprocessValue(res.ID, "")},
|
||||
s.internalUserEncoder(res).Skip("id").Only(onlyColumns...))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
// RemoveUser removes one or more rows from users table
|
||||
func (s Store) RemoveUser(ctx context.Context, rr ...*types.User) error {
|
||||
if len(rr) == 0 {
|
||||
return nil
|
||||
func (s Store) RemoveUser(ctx context.Context, rr ...*types.User) (err error) {
|
||||
for _, res := range rr {
|
||||
err = ExecuteSqlizer(ctx, s.DB(), s.Delete(s.UserTable("usr")).Where(squirrel.Eq{s.preprocessColumn("usr.id", ""): s.preprocessValue(res.ID, "")}))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return Tx(ctx, s.db, s.config, nil, func(db *sqlx.Tx) (err error) {
|
||||
for _, res := range rr {
|
||||
err = ExecuteSqlizer(ctx, s.DB(), s.Delete(s.UserTable("usr")).Where(squirrel.Eq{s.preprocessColumn("usr.id", ""): s.preprocessValue(res.ID, "")}))
|
||||
if err != nil {
|
||||
return s.config.ErrorHandler(err)
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
})
|
||||
return nil
|
||||
}
|
||||
|
||||
// RemoveUserByID removes row from the users table
|
||||
|
||||
Reference in New Issue
Block a user