Skip to content

Commit 1e75992

Browse files
authored
Merge pull request #236 from retran/feature/mutation-interfaces
refactor: define mutation backend interfaces
2 parents 2d82a45 + f07d6fb commit 1e75992

20 files changed

+626
-164
lines changed

mdl/backend/backend.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,4 +31,7 @@ type FullBackend interface {
3131
MetadataBackend
3232
WidgetBackend
3333
AgentEditorBackend
34+
PageMutationBackend
35+
WorkflowMutationBackend
36+
WidgetSerializationBackend
3437
}

mdl/backend/mock/backend.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -258,6 +258,18 @@ type MockBackend struct {
258258
FindCustomWidgetTypeFunc func(widgetID string) (*types.RawCustomWidgetType, error)
259259
FindAllCustomWidgetTypesFunc func(widgetID string) ([]*types.RawCustomWidgetType, error)
260260

261+
// PageMutationBackend
262+
OpenPageForMutationFunc func(unitID model.ID) (backend.PageMutator, error)
263+
264+
// WorkflowMutationBackend
265+
OpenWorkflowForMutationFunc func(unitID model.ID) (backend.WorkflowMutator, error)
266+
267+
// WidgetSerializationBackend
268+
SerializeWidgetFunc func(w pages.Widget) (any, error)
269+
SerializeClientActionFunc func(a pages.ClientAction) (any, error)
270+
SerializeDataSourceFunc func(ds pages.DataSource) (any, error)
271+
SerializeWorkflowActivityFunc func(a workflows.WorkflowActivity) (any, error)
272+
261273
// AgentEditorBackend
262274
ListAgentEditorModelsFunc func() ([]*agenteditor.Model, error)
263275
ListAgentEditorKnowledgeBasesFunc func() ([]*agenteditor.KnowledgeBase, error)

mdl/backend/mock/mock_mutation.go

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
// SPDX-License-Identifier: Apache-2.0
2+
3+
package mock
4+
5+
import (
6+
"github.com/mendixlabs/mxcli/mdl/backend"
7+
"github.com/mendixlabs/mxcli/model"
8+
"github.com/mendixlabs/mxcli/sdk/pages"
9+
"github.com/mendixlabs/mxcli/sdk/workflows"
10+
)
11+
12+
// ---------------------------------------------------------------------------
13+
// PageMutationBackend
14+
// ---------------------------------------------------------------------------
15+
16+
func (m *MockBackend) OpenPageForMutation(unitID model.ID) (backend.PageMutator, error) {
17+
if m.OpenPageForMutationFunc != nil {
18+
return m.OpenPageForMutationFunc(unitID)
19+
}
20+
return nil, nil
21+
}
22+
23+
// ---------------------------------------------------------------------------
24+
// WorkflowMutationBackend
25+
// ---------------------------------------------------------------------------
26+
27+
func (m *MockBackend) OpenWorkflowForMutation(unitID model.ID) (backend.WorkflowMutator, error) {
28+
if m.OpenWorkflowForMutationFunc != nil {
29+
return m.OpenWorkflowForMutationFunc(unitID)
30+
}
31+
return nil, nil
32+
}
33+
34+
// ---------------------------------------------------------------------------
35+
// WidgetSerializationBackend
36+
// ---------------------------------------------------------------------------
37+
38+
func (m *MockBackend) SerializeWidget(w pages.Widget) (any, error) {
39+
if m.SerializeWidgetFunc != nil {
40+
return m.SerializeWidgetFunc(w)
41+
}
42+
return nil, nil
43+
}
44+
45+
func (m *MockBackend) SerializeClientAction(a pages.ClientAction) (any, error) {
46+
if m.SerializeClientActionFunc != nil {
47+
return m.SerializeClientActionFunc(a)
48+
}
49+
return nil, nil
50+
}
51+
52+
func (m *MockBackend) SerializeDataSource(ds pages.DataSource) (any, error) {
53+
if m.SerializeDataSourceFunc != nil {
54+
return m.SerializeDataSourceFunc(ds)
55+
}
56+
return nil, nil
57+
}
58+
59+
func (m *MockBackend) SerializeWorkflowActivity(a workflows.WorkflowActivity) (any, error) {
60+
if m.SerializeWorkflowActivityFunc != nil {
61+
return m.SerializeWorkflowActivityFunc(a)
62+
}
63+
return nil, nil
64+
}

mdl/backend/mpr/backend.go

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -724,3 +724,36 @@ func (b *MprBackend) CreateAgentEditorAgent(a *agenteditor.Agent) error {
724724
func (b *MprBackend) DeleteAgentEditorAgent(id string) error {
725725
return b.writer.DeleteAgentEditorAgent(id)
726726
}
727+
728+
// ---------------------------------------------------------------------------
729+
// PageMutationBackend
730+
731+
func (b *MprBackend) OpenPageForMutation(unitID model.ID) (backend.PageMutator, error) {
732+
panic("MprBackend.OpenPageForMutation not yet implemented") // TODO: implement in PR #237
733+
}
734+
735+
// ---------------------------------------------------------------------------
736+
// WorkflowMutationBackend
737+
738+
func (b *MprBackend) OpenWorkflowForMutation(unitID model.ID) (backend.WorkflowMutator, error) {
739+
panic("MprBackend.OpenWorkflowForMutation not yet implemented") // TODO: implement in PR #237
740+
}
741+
742+
// ---------------------------------------------------------------------------
743+
// WidgetSerializationBackend
744+
745+
func (b *MprBackend) SerializeWidget(w pages.Widget) (any, error) {
746+
panic("MprBackend.SerializeWidget not yet implemented") // TODO: implement in PR #237
747+
}
748+
749+
func (b *MprBackend) SerializeClientAction(a pages.ClientAction) (any, error) {
750+
panic("MprBackend.SerializeClientAction not yet implemented") // TODO: implement in PR #237
751+
}
752+
753+
func (b *MprBackend) SerializeDataSource(ds pages.DataSource) (any, error) {
754+
panic("MprBackend.SerializeDataSource not yet implemented") // TODO: implement in PR #237
755+
}
756+
757+
func (b *MprBackend) SerializeWorkflowActivity(a workflows.WorkflowActivity) (any, error) {
758+
panic("MprBackend.SerializeWorkflowActivity not yet implemented") // TODO: implement in PR #237
759+
}

mdl/backend/mpr/convert.go

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ func convertProjectVersion(v *version.ProjectVersion) *types.ProjectVersion {
2929
}
3030
}
3131

32-
func convertFolderInfoSlice(in []*types.FolderInfo, err error) ([]*types.FolderInfo, error) {
32+
func convertFolderInfoSlice(in []*mpr.FolderInfo, err error) ([]*types.FolderInfo, error) {
3333
if err != nil || in == nil {
3434
return nil, err
3535
}
@@ -40,7 +40,7 @@ func convertFolderInfoSlice(in []*types.FolderInfo, err error) ([]*types.FolderI
4040
return out, nil
4141
}
4242

43-
func convertUnitInfoSlice(in []*types.UnitInfo, err error) ([]*types.UnitInfo, error) {
43+
func convertUnitInfoSlice(in []*mpr.UnitInfo, err error) ([]*types.UnitInfo, error) {
4444
if err != nil || in == nil {
4545
return nil, err
4646
}
@@ -65,7 +65,7 @@ func convertRenameHitSlice(in []mpr.RenameHit, err error) ([]types.RenameHit, er
6565
return out, nil
6666
}
6767

68-
func convertRawUnitSlice(in []*types.RawUnit, err error) ([]*types.RawUnit, error) {
68+
func convertRawUnitSlice(in []*mpr.RawUnit, err error) ([]*types.RawUnit, error) {
6969
if err != nil || in == nil {
7070
return nil, err
7171
}
@@ -126,7 +126,7 @@ func convertRawCustomWidgetTypeSlice(in []*mpr.RawCustomWidgetType, err error) (
126126
return out, nil
127127
}
128128

129-
func convertJavaActionSlice(in []*types.JavaAction, err error) ([]*types.JavaAction, error) {
129+
func convertJavaActionSlice(in []*mpr.JavaAction, err error) ([]*types.JavaAction, error) {
130130
if err != nil || in == nil {
131131
return nil, err
132132
}
@@ -142,7 +142,7 @@ func convertJavaActionSlice(in []*types.JavaAction, err error) ([]*types.JavaAct
142142
return out, nil
143143
}
144144

145-
func convertJavaScriptActionSlice(in []*types.JavaScriptAction, err error) ([]*types.JavaScriptAction, error) {
145+
func convertJavaScriptActionSlice(in []*mpr.JavaScriptAction, err error) ([]*types.JavaScriptAction, error) {
146146
if err != nil || in == nil {
147147
return nil, err
148148
}
@@ -153,14 +153,14 @@ func convertJavaScriptActionSlice(in []*types.JavaScriptAction, err error) ([]*t
153153
return out, nil
154154
}
155155

156-
func convertJavaScriptActionPtr(in *types.JavaScriptAction, err error) (*types.JavaScriptAction, error) {
156+
func convertJavaScriptActionPtr(in *mpr.JavaScriptAction, err error) (*types.JavaScriptAction, error) {
157157
if err != nil || in == nil {
158158
return nil, err
159159
}
160160
return convertJavaScriptAction(in), nil
161161
}
162162

163-
func convertJavaScriptAction(in *types.JavaScriptAction) *types.JavaScriptAction {
163+
func convertJavaScriptAction(in *mpr.JavaScriptAction) *types.JavaScriptAction {
164164
return &types.JavaScriptAction{
165165
BaseElement: in.BaseElement,
166166
ContainerID: in.ContainerID,
@@ -177,7 +177,7 @@ func convertJavaScriptAction(in *types.JavaScriptAction) *types.JavaScriptAction
177177
}
178178
}
179179

180-
func convertNavDocSlice(in []*types.NavigationDocument, err error) ([]*types.NavigationDocument, error) {
180+
func convertNavDocSlice(in []*mpr.NavigationDocument, err error) ([]*types.NavigationDocument, error) {
181181
if err != nil || in == nil {
182182
return nil, err
183183
}
@@ -188,14 +188,14 @@ func convertNavDocSlice(in []*types.NavigationDocument, err error) ([]*types.Nav
188188
return out, nil
189189
}
190190

191-
func convertNavDocPtr(in *types.NavigationDocument, err error) (*types.NavigationDocument, error) {
191+
func convertNavDocPtr(in *mpr.NavigationDocument, err error) (*types.NavigationDocument, error) {
192192
if err != nil || in == nil {
193193
return nil, err
194194
}
195195
return convertNavDoc(in), nil
196196
}
197197

198-
func convertNavDoc(in *types.NavigationDocument) *types.NavigationDocument {
198+
func convertNavDoc(in *mpr.NavigationDocument) *types.NavigationDocument {
199199
nd := &types.NavigationDocument{
200200
BaseElement: in.BaseElement,
201201
ContainerID: in.ContainerID,
@@ -210,7 +210,7 @@ func convertNavDoc(in *types.NavigationDocument) *types.NavigationDocument {
210210
return nd
211211
}
212212

213-
func convertNavProfile(in *types.NavigationProfile) *types.NavigationProfile {
213+
func convertNavProfile(in *mpr.NavigationProfile) *types.NavigationProfile {
214214
p := &types.NavigationProfile{
215215
Name: in.Name,
216216
Kind: in.Kind,
@@ -246,7 +246,7 @@ func convertNavProfile(in *types.NavigationProfile) *types.NavigationProfile {
246246
return p
247247
}
248248

249-
func convertNavMenuItem(in *types.NavMenuItem) *types.NavMenuItem {
249+
func convertNavMenuItem(in *mpr.NavMenuItem) *types.NavMenuItem {
250250
mi := &types.NavMenuItem{
251251
Caption: in.Caption, Page: in.Page, Microflow: in.Microflow, ActionType: in.ActionType,
252252
}
@@ -319,7 +319,7 @@ func unconvertEntityAccessRevocation(in types.EntityAccessRevocation) mpr.Entity
319319
}
320320
}
321321

322-
func convertJsonStructureSlice(in []*types.JsonStructure, err error) ([]*types.JsonStructure, error) {
322+
func convertJsonStructureSlice(in []*mpr.JsonStructure, err error) ([]*types.JsonStructure, error) {
323323
if err != nil || in == nil {
324324
return nil, err
325325
}
@@ -330,14 +330,14 @@ func convertJsonStructureSlice(in []*types.JsonStructure, err error) ([]*types.J
330330
return out, nil
331331
}
332332

333-
func convertJsonStructurePtr(in *types.JsonStructure, err error) (*types.JsonStructure, error) {
333+
func convertJsonStructurePtr(in *mpr.JsonStructure, err error) (*types.JsonStructure, error) {
334334
if err != nil || in == nil {
335335
return nil, err
336336
}
337337
return convertJsonStructure(in), nil
338338
}
339339

340-
func convertJsonStructure(in *types.JsonStructure) *types.JsonStructure {
340+
func convertJsonStructure(in *mpr.JsonStructure) *types.JsonStructure {
341341
js := &types.JsonStructure{
342342
BaseElement: in.BaseElement,
343343
ContainerID: in.ContainerID,
@@ -356,7 +356,7 @@ func convertJsonStructure(in *types.JsonStructure) *types.JsonStructure {
356356
return js
357357
}
358358

359-
func convertJsonElement(in *types.JsonElement) *types.JsonElement {
359+
func convertJsonElement(in *mpr.JsonElement) *types.JsonElement {
360360
e := &types.JsonElement{
361361
ExposedName: in.ExposedName, ExposedItemName: in.ExposedItemName,
362362
Path: in.Path, ElementType: in.ElementType, PrimitiveType: in.PrimitiveType,
@@ -411,7 +411,7 @@ func unconvertJsonElement(in *types.JsonElement) *types.JsonElement {
411411
return e
412412
}
413413

414-
func convertImageCollectionSlice(in []*types.ImageCollection, err error) ([]*types.ImageCollection, error) {
414+
func convertImageCollectionSlice(in []*mpr.ImageCollection, err error) ([]*types.ImageCollection, error) {
415415
if err != nil || in == nil {
416416
return nil, err
417417
}
@@ -422,7 +422,7 @@ func convertImageCollectionSlice(in []*types.ImageCollection, err error) ([]*typ
422422
return out, nil
423423
}
424424

425-
func convertImageCollection(in *types.ImageCollection) *types.ImageCollection {
425+
func convertImageCollection(in *mpr.ImageCollection) *types.ImageCollection {
426426
ic := &types.ImageCollection{
427427
BaseElement: in.BaseElement,
428428
ContainerID: in.ContainerID,

0 commit comments

Comments
 (0)