Tweak typed value Array casting; add missing selected prop

This commit is contained in:
Tomaž Jerman
2021-09-27 10:42:35 +02:00
parent 2511476f4c
commit e7fb1e3e07
7 changed files with 229 additions and 25 deletions
+90
View File
@@ -555,6 +555,12 @@ func getEventTypeDefinitions() []eventTypeDef {
Type: "ComposeNamespace",
Immutable: true,
},
{
Name: "selected",
Type: "",
Immutable: true,
},
},
Constraints: []eventTypeConstraintDef{
@@ -598,6 +604,12 @@ func getEventTypeDefinitions() []eventTypeDef {
Type: "ComposeNamespace",
Immutable: true,
},
{
Name: "selected",
Type: "",
Immutable: true,
},
},
Constraints: []eventTypeConstraintDef{
@@ -641,6 +653,12 @@ func getEventTypeDefinitions() []eventTypeDef {
Type: "ComposeNamespace",
Immutable: true,
},
{
Name: "selected",
Type: "",
Immutable: true,
},
},
Constraints: []eventTypeConstraintDef{
@@ -684,6 +702,12 @@ func getEventTypeDefinitions() []eventTypeDef {
Type: "ComposeNamespace",
Immutable: true,
},
{
Name: "selected",
Type: "",
Immutable: true,
},
},
Constraints: []eventTypeConstraintDef{
@@ -727,6 +751,12 @@ func getEventTypeDefinitions() []eventTypeDef {
Type: "ComposeNamespace",
Immutable: true,
},
{
Name: "selected",
Type: "",
Immutable: true,
},
},
Constraints: []eventTypeConstraintDef{
@@ -770,6 +800,12 @@ func getEventTypeDefinitions() []eventTypeDef {
Type: "ComposeNamespace",
Immutable: true,
},
{
Name: "selected",
Type: "",
Immutable: true,
},
},
Constraints: []eventTypeConstraintDef{
@@ -813,6 +849,12 @@ func getEventTypeDefinitions() []eventTypeDef {
Type: "ComposeNamespace",
Immutable: true,
},
{
Name: "selected",
Type: "",
Immutable: true,
},
},
Constraints: []eventTypeConstraintDef{
@@ -868,6 +910,12 @@ func getEventTypeDefinitions() []eventTypeDef {
Type: "ComposeRecordValueErrorSet",
Immutable: false,
},
{
Name: "selected",
Type: "",
Immutable: true,
},
},
Constraints: []eventTypeConstraintDef{
@@ -939,6 +987,12 @@ func getEventTypeDefinitions() []eventTypeDef {
Type: "ComposeRecordValueErrorSet",
Immutable: false,
},
{
Name: "selected",
Type: "",
Immutable: true,
},
},
Constraints: []eventTypeConstraintDef{
@@ -1010,6 +1064,12 @@ func getEventTypeDefinitions() []eventTypeDef {
Type: "ComposeRecordValueErrorSet",
Immutable: false,
},
{
Name: "selected",
Type: "",
Immutable: true,
},
},
Constraints: []eventTypeConstraintDef{
@@ -1081,6 +1141,12 @@ func getEventTypeDefinitions() []eventTypeDef {
Type: "ComposeRecordValueErrorSet",
Immutable: false,
},
{
Name: "selected",
Type: "",
Immutable: true,
},
},
Constraints: []eventTypeConstraintDef{
@@ -1152,6 +1218,12 @@ func getEventTypeDefinitions() []eventTypeDef {
Type: "ComposeRecordValueErrorSet",
Immutable: false,
},
{
Name: "selected",
Type: "",
Immutable: true,
},
},
Constraints: []eventTypeConstraintDef{
@@ -1223,6 +1295,12 @@ func getEventTypeDefinitions() []eventTypeDef {
Type: "ComposeRecordValueErrorSet",
Immutable: false,
},
{
Name: "selected",
Type: "",
Immutable: true,
},
},
Constraints: []eventTypeConstraintDef{
@@ -1294,6 +1372,12 @@ func getEventTypeDefinitions() []eventTypeDef {
Type: "ComposeRecordValueErrorSet",
Immutable: false,
},
{
Name: "selected",
Type: "",
Immutable: true,
},
},
Constraints: []eventTypeConstraintDef{
@@ -1365,6 +1449,12 @@ func getEventTypeDefinitions() []eventTypeDef {
Type: "ComposeRecordValueErrorSet",
Immutable: false,
},
{
Name: "selected",
Type: "",
Immutable: true,
},
},
Constraints: []eventTypeConstraintDef{
+1 -1
View File
@@ -205,7 +205,7 @@ func (ctrl *Page) TriggerScript(ctx context.Context, r *request.PageTriggerScrip
}
// @todo implement same behaviour as we have on record - page+oldPage
err = corredor.Service().Exec(ctx, r.Script, event.PageOnManual(page, page, namespace))
err = corredor.Service().Exec(ctx, r.Script, event.PageOnManual(page, page, namespace, nil))
return ctrl.makePayload(ctx, page, err)
}
+94
View File
@@ -177,6 +177,7 @@ type (
page *types.Page
oldPage *types.Page
namespace *types.Namespace
selected []interface{}
invoker auth.Identifiable
}
@@ -239,6 +240,7 @@ type (
module *types.Module
namespace *types.Namespace
recordValueErrors *types.RecordValueErrorSet
selected []interface{}
invoker auth.Identifiable
}
@@ -1432,6 +1434,7 @@ func PageOnManual(
argPage *types.Page,
argOldPage *types.Page,
argNamespace *types.Namespace,
argSelected []interface{},
) *pageOnManual {
return &pageOnManual{
pageBase: &pageBase{
@@ -1439,6 +1442,7 @@ func PageOnManual(
page: argPage,
oldPage: argOldPage,
namespace: argNamespace,
selected: argSelected,
},
}
}
@@ -1452,6 +1456,7 @@ func PageOnManualImmutable(
argPage *types.Page,
argOldPage *types.Page,
argNamespace *types.Namespace,
argSelected []interface{},
) *pageOnManual {
return &pageOnManual{
pageBase: &pageBase{
@@ -1459,6 +1464,7 @@ func PageOnManualImmutable(
page: argPage,
oldPage: argOldPage,
namespace: argNamespace,
selected: argSelected,
},
}
}
@@ -1470,6 +1476,7 @@ func PageBeforeCreate(
argPage *types.Page,
argOldPage *types.Page,
argNamespace *types.Namespace,
argSelected []interface{},
) *pageBeforeCreate {
return &pageBeforeCreate{
pageBase: &pageBase{
@@ -1477,6 +1484,7 @@ func PageBeforeCreate(
page: argPage,
oldPage: argOldPage,
namespace: argNamespace,
selected: argSelected,
},
}
}
@@ -1490,6 +1498,7 @@ func PageBeforeCreateImmutable(
argPage *types.Page,
argOldPage *types.Page,
argNamespace *types.Namespace,
argSelected []interface{},
) *pageBeforeCreate {
return &pageBeforeCreate{
pageBase: &pageBase{
@@ -1497,6 +1506,7 @@ func PageBeforeCreateImmutable(
page: argPage,
oldPage: argOldPage,
namespace: argNamespace,
selected: argSelected,
},
}
}
@@ -1508,6 +1518,7 @@ func PageBeforeUpdate(
argPage *types.Page,
argOldPage *types.Page,
argNamespace *types.Namespace,
argSelected []interface{},
) *pageBeforeUpdate {
return &pageBeforeUpdate{
pageBase: &pageBase{
@@ -1515,6 +1526,7 @@ func PageBeforeUpdate(
page: argPage,
oldPage: argOldPage,
namespace: argNamespace,
selected: argSelected,
},
}
}
@@ -1528,6 +1540,7 @@ func PageBeforeUpdateImmutable(
argPage *types.Page,
argOldPage *types.Page,
argNamespace *types.Namespace,
argSelected []interface{},
) *pageBeforeUpdate {
return &pageBeforeUpdate{
pageBase: &pageBase{
@@ -1535,6 +1548,7 @@ func PageBeforeUpdateImmutable(
page: argPage,
oldPage: argOldPage,
namespace: argNamespace,
selected: argSelected,
},
}
}
@@ -1546,6 +1560,7 @@ func PageBeforeDelete(
argPage *types.Page,
argOldPage *types.Page,
argNamespace *types.Namespace,
argSelected []interface{},
) *pageBeforeDelete {
return &pageBeforeDelete{
pageBase: &pageBase{
@@ -1553,6 +1568,7 @@ func PageBeforeDelete(
page: argPage,
oldPage: argOldPage,
namespace: argNamespace,
selected: argSelected,
},
}
}
@@ -1566,6 +1582,7 @@ func PageBeforeDeleteImmutable(
argPage *types.Page,
argOldPage *types.Page,
argNamespace *types.Namespace,
argSelected []interface{},
) *pageBeforeDelete {
return &pageBeforeDelete{
pageBase: &pageBase{
@@ -1573,6 +1590,7 @@ func PageBeforeDeleteImmutable(
page: argPage,
oldPage: argOldPage,
namespace: argNamespace,
selected: argSelected,
},
}
}
@@ -1584,6 +1602,7 @@ func PageAfterCreate(
argPage *types.Page,
argOldPage *types.Page,
argNamespace *types.Namespace,
argSelected []interface{},
) *pageAfterCreate {
return &pageAfterCreate{
pageBase: &pageBase{
@@ -1591,6 +1610,7 @@ func PageAfterCreate(
page: argPage,
oldPage: argOldPage,
namespace: argNamespace,
selected: argSelected,
},
}
}
@@ -1604,6 +1624,7 @@ func PageAfterCreateImmutable(
argPage *types.Page,
argOldPage *types.Page,
argNamespace *types.Namespace,
argSelected []interface{},
) *pageAfterCreate {
return &pageAfterCreate{
pageBase: &pageBase{
@@ -1611,6 +1632,7 @@ func PageAfterCreateImmutable(
page: argPage,
oldPage: argOldPage,
namespace: argNamespace,
selected: argSelected,
},
}
}
@@ -1622,6 +1644,7 @@ func PageAfterUpdate(
argPage *types.Page,
argOldPage *types.Page,
argNamespace *types.Namespace,
argSelected []interface{},
) *pageAfterUpdate {
return &pageAfterUpdate{
pageBase: &pageBase{
@@ -1629,6 +1652,7 @@ func PageAfterUpdate(
page: argPage,
oldPage: argOldPage,
namespace: argNamespace,
selected: argSelected,
},
}
}
@@ -1642,6 +1666,7 @@ func PageAfterUpdateImmutable(
argPage *types.Page,
argOldPage *types.Page,
argNamespace *types.Namespace,
argSelected []interface{},
) *pageAfterUpdate {
return &pageAfterUpdate{
pageBase: &pageBase{
@@ -1649,6 +1674,7 @@ func PageAfterUpdateImmutable(
page: argPage,
oldPage: argOldPage,
namespace: argNamespace,
selected: argSelected,
},
}
}
@@ -1660,6 +1686,7 @@ func PageAfterDelete(
argPage *types.Page,
argOldPage *types.Page,
argNamespace *types.Namespace,
argSelected []interface{},
) *pageAfterDelete {
return &pageAfterDelete{
pageBase: &pageBase{
@@ -1667,6 +1694,7 @@ func PageAfterDelete(
page: argPage,
oldPage: argOldPage,
namespace: argNamespace,
selected: argSelected,
},
}
}
@@ -1680,6 +1708,7 @@ func PageAfterDeleteImmutable(
argPage *types.Page,
argOldPage *types.Page,
argNamespace *types.Namespace,
argSelected []interface{},
) *pageAfterDelete {
return &pageAfterDelete{
pageBase: &pageBase{
@@ -1687,6 +1716,7 @@ func PageAfterDeleteImmutable(
page: argPage,
oldPage: argOldPage,
namespace: argNamespace,
selected: argSelected,
},
}
}
@@ -1719,6 +1749,13 @@ func (res pageBase) Namespace() *types.Namespace {
return res.namespace
}
// Selected returns selected
//
// This function is auto-generated.
func (res pageBase) Selected() []interface{} {
return res.selected
}
// SetInvoker sets new invoker value
//
// This function is auto-generated.
@@ -1749,6 +1786,10 @@ func (res pageBase) Encode() (args map[string][]byte, err error) {
return nil, err
}
if args["selected"], err = json.Marshal(res.selected); err != nil {
return nil, err
}
if args["invoker"], err = json.Marshal(res.invoker); err != nil {
return nil, err
}
@@ -1773,6 +1814,8 @@ func (res pageBase) EncodeVars() (out *expr.Vars, err error) {
return
}
// Could not found expression-type counterpart for []interface{}
// Could not found expression-type counterpart for auth.Identifiable
_ = v
@@ -1805,6 +1848,8 @@ func (res *pageBase) Decode(results map[string][]byte) (err error) {
// Do not decode namespace; marked as immutable
// Do not decode selected; marked as immutable
if res.invoker != nil {
if r, ok := results["invoker"]; ok {
if err = json.Unmarshal(r, res.invoker); err != nil {
@@ -1823,6 +1868,7 @@ func (res *pageBase) DecodeVars(vars *expr.Vars) (err error) {
// Could not find expression-type counterpart for *types.Page
// oldPage marked as immutable
// namespace marked as immutable
// selected marked as immutable
// Could not find expression-type counterpart for auth.Identifiable
return
@@ -1900,6 +1946,7 @@ func RecordOnManual(
argModule *types.Module,
argNamespace *types.Namespace,
argRecordValueErrors *types.RecordValueErrorSet,
argSelected []interface{},
) *recordOnManual {
return &recordOnManual{
recordBase: &recordBase{
@@ -1909,6 +1956,7 @@ func RecordOnManual(
module: argModule,
namespace: argNamespace,
recordValueErrors: argRecordValueErrors,
selected: argSelected,
},
}
}
@@ -1924,6 +1972,7 @@ func RecordOnManualImmutable(
argModule *types.Module,
argNamespace *types.Namespace,
argRecordValueErrors *types.RecordValueErrorSet,
argSelected []interface{},
) *recordOnManual {
return &recordOnManual{
recordBase: &recordBase{
@@ -1933,6 +1982,7 @@ func RecordOnManualImmutable(
module: argModule,
namespace: argNamespace,
recordValueErrors: argRecordValueErrors,
selected: argSelected,
},
}
}
@@ -1946,6 +1996,7 @@ func RecordOnIteration(
argModule *types.Module,
argNamespace *types.Namespace,
argRecordValueErrors *types.RecordValueErrorSet,
argSelected []interface{},
) *recordOnIteration {
return &recordOnIteration{
recordBase: &recordBase{
@@ -1955,6 +2006,7 @@ func RecordOnIteration(
module: argModule,
namespace: argNamespace,
recordValueErrors: argRecordValueErrors,
selected: argSelected,
},
}
}
@@ -1970,6 +2022,7 @@ func RecordOnIterationImmutable(
argModule *types.Module,
argNamespace *types.Namespace,
argRecordValueErrors *types.RecordValueErrorSet,
argSelected []interface{},
) *recordOnIteration {
return &recordOnIteration{
recordBase: &recordBase{
@@ -1979,6 +2032,7 @@ func RecordOnIterationImmutable(
module: argModule,
namespace: argNamespace,
recordValueErrors: argRecordValueErrors,
selected: argSelected,
},
}
}
@@ -1992,6 +2046,7 @@ func RecordBeforeCreate(
argModule *types.Module,
argNamespace *types.Namespace,
argRecordValueErrors *types.RecordValueErrorSet,
argSelected []interface{},
) *recordBeforeCreate {
return &recordBeforeCreate{
recordBase: &recordBase{
@@ -2001,6 +2056,7 @@ func RecordBeforeCreate(
module: argModule,
namespace: argNamespace,
recordValueErrors: argRecordValueErrors,
selected: argSelected,
},
}
}
@@ -2016,6 +2072,7 @@ func RecordBeforeCreateImmutable(
argModule *types.Module,
argNamespace *types.Namespace,
argRecordValueErrors *types.RecordValueErrorSet,
argSelected []interface{},
) *recordBeforeCreate {
return &recordBeforeCreate{
recordBase: &recordBase{
@@ -2025,6 +2082,7 @@ func RecordBeforeCreateImmutable(
module: argModule,
namespace: argNamespace,
recordValueErrors: argRecordValueErrors,
selected: argSelected,
},
}
}
@@ -2038,6 +2096,7 @@ func RecordBeforeUpdate(
argModule *types.Module,
argNamespace *types.Namespace,
argRecordValueErrors *types.RecordValueErrorSet,
argSelected []interface{},
) *recordBeforeUpdate {
return &recordBeforeUpdate{
recordBase: &recordBase{
@@ -2047,6 +2106,7 @@ func RecordBeforeUpdate(
module: argModule,
namespace: argNamespace,
recordValueErrors: argRecordValueErrors,
selected: argSelected,
},
}
}
@@ -2062,6 +2122,7 @@ func RecordBeforeUpdateImmutable(
argModule *types.Module,
argNamespace *types.Namespace,
argRecordValueErrors *types.RecordValueErrorSet,
argSelected []interface{},
) *recordBeforeUpdate {
return &recordBeforeUpdate{
recordBase: &recordBase{
@@ -2071,6 +2132,7 @@ func RecordBeforeUpdateImmutable(
module: argModule,
namespace: argNamespace,
recordValueErrors: argRecordValueErrors,
selected: argSelected,
},
}
}
@@ -2084,6 +2146,7 @@ func RecordBeforeDelete(
argModule *types.Module,
argNamespace *types.Namespace,
argRecordValueErrors *types.RecordValueErrorSet,
argSelected []interface{},
) *recordBeforeDelete {
return &recordBeforeDelete{
recordBase: &recordBase{
@@ -2093,6 +2156,7 @@ func RecordBeforeDelete(
module: argModule,
namespace: argNamespace,
recordValueErrors: argRecordValueErrors,
selected: argSelected,
},
}
}
@@ -2108,6 +2172,7 @@ func RecordBeforeDeleteImmutable(
argModule *types.Module,
argNamespace *types.Namespace,
argRecordValueErrors *types.RecordValueErrorSet,
argSelected []interface{},
) *recordBeforeDelete {
return &recordBeforeDelete{
recordBase: &recordBase{
@@ -2117,6 +2182,7 @@ func RecordBeforeDeleteImmutable(
module: argModule,
namespace: argNamespace,
recordValueErrors: argRecordValueErrors,
selected: argSelected,
},
}
}
@@ -2130,6 +2196,7 @@ func RecordAfterCreate(
argModule *types.Module,
argNamespace *types.Namespace,
argRecordValueErrors *types.RecordValueErrorSet,
argSelected []interface{},
) *recordAfterCreate {
return &recordAfterCreate{
recordBase: &recordBase{
@@ -2139,6 +2206,7 @@ func RecordAfterCreate(
module: argModule,
namespace: argNamespace,
recordValueErrors: argRecordValueErrors,
selected: argSelected,
},
}
}
@@ -2154,6 +2222,7 @@ func RecordAfterCreateImmutable(
argModule *types.Module,
argNamespace *types.Namespace,
argRecordValueErrors *types.RecordValueErrorSet,
argSelected []interface{},
) *recordAfterCreate {
return &recordAfterCreate{
recordBase: &recordBase{
@@ -2163,6 +2232,7 @@ func RecordAfterCreateImmutable(
module: argModule,
namespace: argNamespace,
recordValueErrors: argRecordValueErrors,
selected: argSelected,
},
}
}
@@ -2176,6 +2246,7 @@ func RecordAfterUpdate(
argModule *types.Module,
argNamespace *types.Namespace,
argRecordValueErrors *types.RecordValueErrorSet,
argSelected []interface{},
) *recordAfterUpdate {
return &recordAfterUpdate{
recordBase: &recordBase{
@@ -2185,6 +2256,7 @@ func RecordAfterUpdate(
module: argModule,
namespace: argNamespace,
recordValueErrors: argRecordValueErrors,
selected: argSelected,
},
}
}
@@ -2200,6 +2272,7 @@ func RecordAfterUpdateImmutable(
argModule *types.Module,
argNamespace *types.Namespace,
argRecordValueErrors *types.RecordValueErrorSet,
argSelected []interface{},
) *recordAfterUpdate {
return &recordAfterUpdate{
recordBase: &recordBase{
@@ -2209,6 +2282,7 @@ func RecordAfterUpdateImmutable(
module: argModule,
namespace: argNamespace,
recordValueErrors: argRecordValueErrors,
selected: argSelected,
},
}
}
@@ -2222,6 +2296,7 @@ func RecordAfterDelete(
argModule *types.Module,
argNamespace *types.Namespace,
argRecordValueErrors *types.RecordValueErrorSet,
argSelected []interface{},
) *recordAfterDelete {
return &recordAfterDelete{
recordBase: &recordBase{
@@ -2231,6 +2306,7 @@ func RecordAfterDelete(
module: argModule,
namespace: argNamespace,
recordValueErrors: argRecordValueErrors,
selected: argSelected,
},
}
}
@@ -2246,6 +2322,7 @@ func RecordAfterDeleteImmutable(
argModule *types.Module,
argNamespace *types.Namespace,
argRecordValueErrors *types.RecordValueErrorSet,
argSelected []interface{},
) *recordAfterDelete {
return &recordAfterDelete{
recordBase: &recordBase{
@@ -2255,6 +2332,7 @@ func RecordAfterDeleteImmutable(
module: argModule,
namespace: argNamespace,
recordValueErrors: argRecordValueErrors,
selected: argSelected,
},
}
}
@@ -2308,6 +2386,13 @@ func (res recordBase) RecordValueErrors() *types.RecordValueErrorSet {
return res.recordValueErrors
}
// Selected returns selected
//
// This function is auto-generated.
func (res recordBase) Selected() []interface{} {
return res.selected
}
// SetInvoker sets new invoker value
//
// This function is auto-generated.
@@ -2346,6 +2431,10 @@ func (res recordBase) Encode() (args map[string][]byte, err error) {
return nil, err
}
if args["selected"], err = json.Marshal(res.selected); err != nil {
return nil, err
}
if args["invoker"], err = json.Marshal(res.invoker); err != nil {
return nil, err
}
@@ -2398,6 +2487,8 @@ func (res recordBase) EncodeVars() (out *expr.Vars, err error) {
return
}
// Could not found expression-type counterpart for []interface{}
// Could not found expression-type counterpart for auth.Identifiable
_ = v
@@ -2440,6 +2531,8 @@ func (res *recordBase) Decode(results map[string][]byte) (err error) {
}
}
// Do not decode selected; marked as immutable
if res.invoker != nil {
if r, ok := results["invoker"]; ok {
if err = json.Unmarshal(r, res.invoker); err != nil {
@@ -2476,6 +2569,7 @@ func (res *recordBase) DecodeVars(vars *expr.Vars) (err error) {
res.recordValueErrors = aux.GetValue()
}
// selected marked as immutable
// Could not find expression-type counterpart for auth.Identifiable
return
+6
View File
@@ -26,6 +26,9 @@ compose:page:
- name: 'namespace'
type: '*types.Namespace'
immutable: true
- name: 'selected'
type: '[]interface{}'
immutable: true
constraints:
- name: namespace.handle
- name: namespace.name
@@ -67,6 +70,9 @@ compose:record:
immutable: true
- name: 'recordValueErrors'
type: '*types.RecordValueErrorSet'
- name: 'selected'
type: '[]interface{}'
immutable: true
constraints:
- name: namespace.handle
+6 -6
View File
@@ -276,7 +276,7 @@ func (svc page) Create(ctx context.Context, new *types.Page) (*types.Page, error
aProps.setNamespace(ns)
if err = svc.eventbus.WaitFor(ctx, event.PageBeforeCreate(new, nil, ns)); err != nil {
if err = svc.eventbus.WaitFor(ctx, event.PageBeforeCreate(new, nil, ns, nil)); err != nil {
return err
}
@@ -307,7 +307,7 @@ func (svc page) Create(ctx context.Context, new *types.Page) (*types.Page, error
return
}
_ = svc.eventbus.WaitFor(ctx, event.PageAfterCreate(new, nil, ns))
_ = svc.eventbus.WaitFor(ctx, event.PageAfterCreate(new, nil, ns, nil))
return err
})
@@ -352,9 +352,9 @@ func (svc page) updater(ctx context.Context, namespaceID, pageID uint64, action
aProps.setChanged(p)
if p.DeletedAt == nil {
err = svc.eventbus.WaitFor(ctx, event.PageBeforeUpdate(p, old, ns))
err = svc.eventbus.WaitFor(ctx, event.PageBeforeUpdate(p, old, ns, nil))
} else {
err = svc.eventbus.WaitFor(ctx, event.PageBeforeDelete(p, old, ns))
err = svc.eventbus.WaitFor(ctx, event.PageBeforeDelete(p, old, ns, nil))
}
if err != nil {
@@ -388,9 +388,9 @@ func (svc page) updater(ctx context.Context, namespaceID, pageID uint64, action
}
if p.DeletedAt == nil {
err = svc.eventbus.WaitFor(ctx, event.PageAfterUpdate(p, old, ns))
err = svc.eventbus.WaitFor(ctx, event.PageAfterUpdate(p, old, ns, nil))
} else {
err = svc.eventbus.WaitFor(ctx, event.PageAfterDelete(nil, old, ns))
err = svc.eventbus.WaitFor(ctx, event.PageAfterDelete(nil, old, ns, nil))
}
return err
+8 -8
View File
@@ -504,7 +504,7 @@ func (svc record) create(ctx context.Context, new *types.Record) (rec *types.Rec
return nil, RecordErrValueInput().Wrap(rve)
}
if err = svc.eventbus.WaitFor(ctx, event.RecordBeforeCreate(new, nil, m, ns, rve)); err != nil {
if err = svc.eventbus.WaitFor(ctx, event.RecordBeforeCreate(new, nil, m, ns, rve, nil)); err != nil {
return
} else if !rve.IsValid() {
return nil, RecordErrValueInput().Wrap(rve)
@@ -538,7 +538,7 @@ func (svc record) create(ctx context.Context, new *types.Record) (rec *types.Rec
if svc.optEmitEvents {
new.Values = svc.formatter.Run(m, new.Values)
_ = svc.eventbus.WaitFor(ctx, event.RecordAfterCreateImmutable(new, nil, m, ns, nil))
_ = svc.eventbus.WaitFor(ctx, event.RecordAfterCreateImmutable(new, nil, m, ns, nil, nil))
}
return
@@ -755,7 +755,7 @@ func (svc record) update(ctx context.Context, upd *types.Record) (rec *types.Rec
//
// rve (record-validation-errorset) struct is passed so it can be
// used & filled by automation scripts
if err = svc.eventbus.WaitFor(ctx, event.RecordBeforeUpdate(upd, old, m, ns, rve)); err != nil {
if err = svc.eventbus.WaitFor(ctx, event.RecordBeforeUpdate(upd, old, m, ns, rve, nil)); err != nil {
return
} else if !rve.IsValid() {
return nil, RecordErrValueInput().Wrap(rve)
@@ -795,7 +795,7 @@ func (svc record) update(ctx context.Context, upd *types.Record) (rec *types.Rec
if svc.optEmitEvents {
// Before we pass values to automation scripts, they should be formatted
upd.Values = svc.formatter.Run(m, upd.Values)
_ = svc.eventbus.WaitFor(ctx, event.RecordAfterUpdateImmutable(upd, old, m, ns, nil))
_ = svc.eventbus.WaitFor(ctx, event.RecordAfterUpdateImmutable(upd, old, m, ns, nil, nil))
}
return
}
@@ -955,7 +955,7 @@ func (svc record) delete(ctx context.Context, namespaceID, moduleID, recordID ui
if svc.optEmitEvents {
// Calling before-record-delete scripts
if err = svc.eventbus.WaitFor(ctx, event.RecordBeforeDelete(nil, del, m, ns, nil)); err != nil {
if err = svc.eventbus.WaitFor(ctx, event.RecordBeforeDelete(nil, del, m, ns, nil, nil)); err != nil {
return nil, err
}
}
@@ -975,7 +975,7 @@ func (svc record) delete(ctx context.Context, namespaceID, moduleID, recordID ui
del.SetModule(m)
if svc.optEmitEvents {
_ = svc.eventbus.WaitFor(ctx, event.RecordAfterDeleteImmutable(nil, del, m, ns, nil))
_ = svc.eventbus.WaitFor(ctx, event.RecordAfterDeleteImmutable(nil, del, m, ns, nil, nil))
}
return del, nil
@@ -1223,7 +1223,7 @@ func (svc record) TriggerScript(ctx context.Context, namespaceID, moduleID, reco
r.Values = values.Sanitizer().Run(m, rvs)
validated := values.Validator().Run(ctx, svc.store, m, r)
err = corredor.Service().Exec(ctx, script, event.RecordOnManual(r, original, m, ns, validated))
err = corredor.Service().Exec(ctx, script, event.RecordOnManual(r, original, m, ns, validated, nil))
if err != nil {
return nil, nil, err
}
@@ -1316,7 +1316,7 @@ func (svc record) Iterator(ctx context.Context, f types.RecordFilter, fn eventbu
}
err = func() error {
if err = fn(ctx, event.RecordOnIteration(rec, nil, m, ns, nil)); err != nil {
if err = fn(ctx, event.RecordOnIteration(rec, nil, m, ns, nil, nil)); err != nil {
if errors.Is(err, corredor.ScriptExecAborted) {
// When script was softly aborted (return false),
// proceed with iteration but do not clone, update or delete
+24 -10
View File
@@ -196,21 +196,35 @@ func CastToArray(val interface{}) (out []TypedValue, err error) {
return val.value, nil
}
ref := reflect.ValueOf(val)
if ref.Kind() == reflect.Slice {
out = make([]TypedValue, ref.Len())
for i := 0; i < ref.Len(); i++ {
item := ref.Index(i).Interface()
out[i], err = Typify(item)
if err != nil {
return
cast := func(val interface{}) (out []TypedValue, err error) {
ref := reflect.ValueOf(val)
if ref.Kind() == reflect.Slice {
out = make([]TypedValue, ref.Len())
for i := 0; i < ref.Len(); i++ {
item := ref.Index(i).Interface()
out[i], err = Typify(item)
if err != nil {
return
}
}
}
return
}
return nil, fmt.Errorf("unable to cast %T to []TypedValue", val)
if c, ok := val.(TypedValue); ok {
out, err = cast(c.Get())
} else {
out, err = cast(val)
}
if err != nil {
return nil, err
}
if val == nil {
return nil, fmt.Errorf("unable to cast %T to []TypedValue", val)
}
return
}
var _ TypeValueDecoder = &Array{}