Files
corteza/system/automation/users_handler.gen.go
T
Denis Arh cfe02be081 Add support for labels on automation functions
Idea for these labels is to give instructions which labels to copy
on step and on workflow when function step is added to the graph.

Labels are defined with "step,workflow", "workflow" or "step" for value.
UI should follow these instructions when copying labels to workflow
and/or step.
2021-03-12 13:12:07 +01:00

913 lines
19 KiB
Go

package automation
// This file is auto-generated.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
//
// Definitions file that controls how this file is generated:
// system/automation/users_handler.yaml
import (
"context"
atypes "github.com/cortezaproject/corteza-server/automation/types"
"github.com/cortezaproject/corteza-server/pkg/expr"
"github.com/cortezaproject/corteza-server/pkg/wfexec"
"github.com/cortezaproject/corteza-server/system/types"
)
var _ wfexec.ExecResponse
type (
usersHandlerRegistry interface {
AddFunctions(ff ...*atypes.Function)
Type(ref string) expr.Type
}
)
func (h usersHandler) register() {
h.reg.AddFunctions(
h.Lookup(),
h.Search(),
h.Each(),
h.Create(),
h.Update(),
h.Delete(),
h.Recover(),
h.Suspend(),
h.Unsuspend(),
)
}
type (
usersLookupArgs struct {
hasLookup bool
Lookup interface{}
lookupID uint64
lookupHandle string
lookupEmail string
lookupRes *types.User
}
usersLookupResults struct {
User *types.User
}
)
func (a usersLookupArgs) GetLookup() (bool, uint64, string, string, *types.User) {
return a.hasLookup, a.lookupID, a.lookupHandle, a.lookupEmail, a.lookupRes
}
// Lookup function Looks-up for user by ID
//
// expects implementation of lookup function:
// func (h usersHandler) lookup(ctx context.Context, args *usersLookupArgs) (results *usersLookupResults, err error) {
// return
// }
func (h usersHandler) Lookup() *atypes.Function {
return &atypes.Function{
Ref: "usersLookup",
Kind: "function",
Labels: map[string]string{"users": "step,workflow"},
Meta: &atypes.FunctionMeta{
Short: "Looks-up for user by ID",
},
Parameters: []*atypes.Param{
{
Name: "lookup",
Types: []string{"ID", "Handle", "String", "User"}, Required: true,
},
},
Results: []*atypes.Param{
{
Name: "user",
Types: []string{"User"},
},
},
Handler: func(ctx context.Context, in *expr.Vars) (out *expr.Vars, err error) {
var (
args = &usersLookupArgs{
hasLookup: in.Has("lookup"),
}
)
if err = in.Decode(args); err != nil {
return
}
// Converting Lookup argument
if args.hasLookup {
aux := expr.Must(expr.Select(in, "lookup"))
switch aux.Type() {
case h.reg.Type("ID").Type():
args.lookupID = aux.Get().(uint64)
case h.reg.Type("Handle").Type():
args.lookupHandle = aux.Get().(string)
case h.reg.Type("String").Type():
args.lookupEmail = aux.Get().(string)
case h.reg.Type("User").Type():
args.lookupRes = aux.Get().(*types.User)
}
}
var results *usersLookupResults
if results, err = h.lookup(ctx, args); err != nil {
return
}
out = &expr.Vars{}
{
// converting results.User (*types.User) to User
var (
tval expr.TypedValue
)
if tval, err = h.reg.Type("User").Cast(results.User); err != nil {
return
} else if err = expr.Assign(out, "user", tval); err != nil {
return
}
}
return
},
}
}
type (
usersSearchArgs struct {
hasQuery bool
Query string
hasEmail bool
Email string
hasHandle bool
Handle string
hasLabels bool
Labels map[string]string
hasDeleted bool
Deleted uint64
hasSuspended bool
Suspended uint64
hasSort bool
Sort string
hasLimit bool
Limit uint64
hasIncTotal bool
IncTotal bool
hasIncPageNavigation bool
IncPageNavigation bool
hasPageCursor bool
PageCursor string
}
usersSearchResults struct {
Users []*types.User
Total uint64
PageCursor string
}
)
// Search function Searches for users and returns them
//
// expects implementation of search function:
// func (h usersHandler) search(ctx context.Context, args *usersSearchArgs) (results *usersSearchResults, err error) {
// return
// }
func (h usersHandler) Search() *atypes.Function {
return &atypes.Function{
Ref: "usersSearch",
Kind: "function",
Labels: map[string]string{"users": "step,workflow"},
Meta: &atypes.FunctionMeta{
Short: "Searches for users and returns them",
},
Parameters: []*atypes.Param{
{
Name: "query",
Types: []string{"String"},
},
{
Name: "email",
Types: []string{"String"},
},
{
Name: "handle",
Types: []string{"String"},
},
{
Name: "labels",
Types: []string{"KV"},
},
{
Name: "deleted",
Types: []string{"UnsignedInteger"},
},
{
Name: "suspended",
Types: []string{"UnsignedInteger"},
},
{
Name: "sort",
Types: []string{"String"},
},
{
Name: "limit",
Types: []string{"UnsignedInteger"},
},
{
Name: "incTotal",
Types: []string{"Boolean"},
},
{
Name: "incPageNavigation",
Types: []string{"Boolean"},
},
{
Name: "pageCursor",
Types: []string{"String"},
},
},
Results: []*atypes.Param{
{
Name: "users",
Types: []string{"User"},
IsArray: true,
},
{
Name: "total",
Types: []string{"UnsignedInteger"},
},
{
Name: "pageCursor",
Types: []string{"String"},
},
},
Handler: func(ctx context.Context, in *expr.Vars) (out *expr.Vars, err error) {
var (
args = &usersSearchArgs{
hasQuery: in.Has("query"),
hasEmail: in.Has("email"),
hasHandle: in.Has("handle"),
hasLabels: in.Has("labels"),
hasDeleted: in.Has("deleted"),
hasSuspended: in.Has("suspended"),
hasSort: in.Has("sort"),
hasLimit: in.Has("limit"),
hasIncTotal: in.Has("incTotal"),
hasIncPageNavigation: in.Has("incPageNavigation"),
hasPageCursor: in.Has("pageCursor"),
}
)
if err = in.Decode(args); err != nil {
return
}
var results *usersSearchResults
if results, err = h.search(ctx, args); err != nil {
return
}
out = &expr.Vars{}
{
// converting results.Users (*types.User) to Array (of User)
var (
tval expr.TypedValue
tarr = make([]expr.TypedValue, len(results.Users))
)
for i := range results.Users {
if tarr[i], err = h.reg.Type("User").Cast(results.Users[i]); err != nil {
return
}
}
if tval, err = expr.NewArray(tarr); err != nil {
return
} else if err = expr.Assign(out, "users", tval); err != nil {
return
}
}
{
// converting results.Total (uint64) to UnsignedInteger
var (
tval expr.TypedValue
)
if tval, err = h.reg.Type("UnsignedInteger").Cast(results.Total); err != nil {
return
} else if err = expr.Assign(out, "total", tval); err != nil {
return
}
}
{
// converting results.PageCursor (string) to String
var (
tval expr.TypedValue
)
if tval, err = h.reg.Type("String").Cast(results.PageCursor); err != nil {
return
} else if err = expr.Assign(out, "pageCursor", tval); err != nil {
return
}
}
return
},
}
}
type (
usersEachArgs struct {
hasQuery bool
Query string
hasEmail bool
Email string
hasHandle bool
Handle string
hasLabels bool
Labels map[string]string
hasDeleted bool
Deleted uint64
hasSuspended bool
Suspended uint64
hasSort bool
Sort string
hasLimit bool
Limit uint64
hasIncTotal bool
IncTotal bool
hasIncPageNavigation bool
IncPageNavigation bool
hasPageCursor bool
PageCursor string
}
usersEachResults struct {
User *types.User
Total uint64
}
)
// Each function Searches for users and iterates over results
//
// expects implementation of each function:
// func (h usersHandler) each(ctx context.Context, args *usersEachArgs) (results *usersEachResults, err error) {
// return
// }
func (h usersHandler) Each() *atypes.Function {
return &atypes.Function{
Ref: "usersEach",
Kind: "iterator",
Labels: map[string]string{"users": "step,workflow"},
Meta: &atypes.FunctionMeta{
Short: "Searches for users and iterates over results",
},
Parameters: []*atypes.Param{
{
Name: "query",
Types: []string{"String"},
},
{
Name: "email",
Types: []string{"String"},
},
{
Name: "handle",
Types: []string{"String"},
},
{
Name: "labels",
Types: []string{"KV"},
},
{
Name: "deleted",
Types: []string{"UnsignedInteger"},
},
{
Name: "suspended",
Types: []string{"UnsignedInteger"},
},
{
Name: "sort",
Types: []string{"String"},
},
{
Name: "limit",
Types: []string{"UnsignedInteger"},
},
{
Name: "incTotal",
Types: []string{"Boolean"},
},
{
Name: "incPageNavigation",
Types: []string{"Boolean"},
},
{
Name: "pageCursor",
Types: []string{"String"},
},
},
Results: []*atypes.Param{
{
Name: "user",
Types: []string{"User"},
},
{
Name: "total",
Types: []string{"UnsignedInteger"},
},
},
Iterator: func(ctx context.Context, in *expr.Vars) (out wfexec.IteratorHandler, err error) {
var (
args = &usersEachArgs{
hasQuery: in.Has("query"),
hasEmail: in.Has("email"),
hasHandle: in.Has("handle"),
hasLabels: in.Has("labels"),
hasDeleted: in.Has("deleted"),
hasSuspended: in.Has("suspended"),
hasSort: in.Has("sort"),
hasLimit: in.Has("limit"),
hasIncTotal: in.Has("incTotal"),
hasIncPageNavigation: in.Has("incPageNavigation"),
hasPageCursor: in.Has("pageCursor"),
}
)
if err = in.Decode(args); err != nil {
return
}
return h.each(ctx, args)
},
}
}
type (
usersCreateArgs struct {
hasUser bool
User *types.User
}
usersCreateResults struct {
User *types.User
}
)
// Create function Creates new user
//
// expects implementation of create function:
// func (h usersHandler) create(ctx context.Context, args *usersCreateArgs) (results *usersCreateResults, err error) {
// return
// }
func (h usersHandler) Create() *atypes.Function {
return &atypes.Function{
Ref: "usersCreate",
Kind: "function",
Labels: map[string]string{"users": "step,workflow"},
Meta: &atypes.FunctionMeta{
Short: "Creates new user",
},
Parameters: []*atypes.Param{
{
Name: "user",
Types: []string{"User"}, Required: true,
},
},
Results: []*atypes.Param{
{
Name: "user",
Types: []string{"User"},
},
},
Handler: func(ctx context.Context, in *expr.Vars) (out *expr.Vars, err error) {
var (
args = &usersCreateArgs{
hasUser: in.Has("user"),
}
)
if err = in.Decode(args); err != nil {
return
}
var results *usersCreateResults
if results, err = h.create(ctx, args); err != nil {
return
}
out = &expr.Vars{}
{
// converting results.User (*types.User) to User
var (
tval expr.TypedValue
)
if tval, err = h.reg.Type("User").Cast(results.User); err != nil {
return
} else if err = expr.Assign(out, "user", tval); err != nil {
return
}
}
return
},
}
}
type (
usersUpdateArgs struct {
hasUser bool
User *types.User
}
usersUpdateResults struct {
User *types.User
}
)
// Update function Updates exiting user
//
// expects implementation of update function:
// func (h usersHandler) update(ctx context.Context, args *usersUpdateArgs) (results *usersUpdateResults, err error) {
// return
// }
func (h usersHandler) Update() *atypes.Function {
return &atypes.Function{
Ref: "usersUpdate",
Kind: "function",
Labels: map[string]string{"users": "step,workflow"},
Meta: &atypes.FunctionMeta{
Short: "Updates exiting user",
},
Parameters: []*atypes.Param{
{
Name: "user",
Types: []string{"User"}, Required: true,
},
},
Results: []*atypes.Param{
{
Name: "user",
Types: []string{"User"},
},
},
Handler: func(ctx context.Context, in *expr.Vars) (out *expr.Vars, err error) {
var (
args = &usersUpdateArgs{
hasUser: in.Has("user"),
}
)
if err = in.Decode(args); err != nil {
return
}
var results *usersUpdateResults
if results, err = h.update(ctx, args); err != nil {
return
}
out = &expr.Vars{}
{
// converting results.User (*types.User) to User
var (
tval expr.TypedValue
)
if tval, err = h.reg.Type("User").Cast(results.User); err != nil {
return
} else if err = expr.Assign(out, "user", tval); err != nil {
return
}
}
return
},
}
}
type (
usersDeleteArgs struct {
hasLookup bool
Lookup interface{}
lookupID uint64
lookupHandle string
lookupEmail string
lookupRes *types.User
}
)
func (a usersDeleteArgs) GetLookup() (bool, uint64, string, string, *types.User) {
return a.hasLookup, a.lookupID, a.lookupHandle, a.lookupEmail, a.lookupRes
}
// Delete function Deletes user
//
// expects implementation of delete function:
// func (h usersHandler) delete(ctx context.Context, args *usersDeleteArgs) (err error) {
// return
// }
func (h usersHandler) Delete() *atypes.Function {
return &atypes.Function{
Ref: "usersDelete",
Kind: "function",
Labels: map[string]string{"delete": "step", "users": "step,workflow"},
Meta: &atypes.FunctionMeta{
Short: "Deletes user",
},
Parameters: []*atypes.Param{
{
Name: "lookup",
Types: []string{"ID", "Handle", "String", "User"}, Required: true,
},
},
Handler: func(ctx context.Context, in *expr.Vars) (out *expr.Vars, err error) {
var (
args = &usersDeleteArgs{
hasLookup: in.Has("lookup"),
}
)
if err = in.Decode(args); err != nil {
return
}
// Converting Lookup argument
if args.hasLookup {
aux := expr.Must(expr.Select(in, "lookup"))
switch aux.Type() {
case h.reg.Type("ID").Type():
args.lookupID = aux.Get().(uint64)
case h.reg.Type("Handle").Type():
args.lookupHandle = aux.Get().(string)
case h.reg.Type("String").Type():
args.lookupEmail = aux.Get().(string)
case h.reg.Type("User").Type():
args.lookupRes = aux.Get().(*types.User)
}
}
return out, h.delete(ctx, args)
},
}
}
type (
usersRecoverArgs struct {
hasLookup bool
Lookup interface{}
lookupID uint64
lookupHandle string
lookupEmail string
lookupRes *types.User
}
)
func (a usersRecoverArgs) GetLookup() (bool, uint64, string, string, *types.User) {
return a.hasLookup, a.lookupID, a.lookupHandle, a.lookupEmail, a.lookupRes
}
// Recover function Recovers deleted user
//
// expects implementation of recover function:
// func (h usersHandler) recover(ctx context.Context, args *usersRecoverArgs) (err error) {
// return
// }
func (h usersHandler) Recover() *atypes.Function {
return &atypes.Function{
Ref: "usersRecover",
Kind: "function",
Labels: map[string]string{"recover": "step", "users": "step,workflow"},
Meta: &atypes.FunctionMeta{
Short: "Recovers deleted user",
},
Parameters: []*atypes.Param{
{
Name: "lookup",
Types: []string{"ID", "Handle", "String", "User"}, Required: true,
},
},
Handler: func(ctx context.Context, in *expr.Vars) (out *expr.Vars, err error) {
var (
args = &usersRecoverArgs{
hasLookup: in.Has("lookup"),
}
)
if err = in.Decode(args); err != nil {
return
}
// Converting Lookup argument
if args.hasLookup {
aux := expr.Must(expr.Select(in, "lookup"))
switch aux.Type() {
case h.reg.Type("ID").Type():
args.lookupID = aux.Get().(uint64)
case h.reg.Type("Handle").Type():
args.lookupHandle = aux.Get().(string)
case h.reg.Type("String").Type():
args.lookupEmail = aux.Get().(string)
case h.reg.Type("User").Type():
args.lookupRes = aux.Get().(*types.User)
}
}
return out, h.recover(ctx, args)
},
}
}
type (
usersSuspendArgs struct {
hasLookup bool
Lookup interface{}
lookupID uint64
lookupHandle string
lookupEmail string
lookupRes *types.User
}
)
func (a usersSuspendArgs) GetLookup() (bool, uint64, string, string, *types.User) {
return a.hasLookup, a.lookupID, a.lookupHandle, a.lookupEmail, a.lookupRes
}
// Suspend function Suspends user
//
// expects implementation of suspend function:
// func (h usersHandler) suspend(ctx context.Context, args *usersSuspendArgs) (err error) {
// return
// }
func (h usersHandler) Suspend() *atypes.Function {
return &atypes.Function{
Ref: "usersSuspend",
Kind: "function",
Labels: map[string]string{"suspend": "step", "users": "step,workflow"},
Meta: &atypes.FunctionMeta{
Short: "Suspends user",
},
Parameters: []*atypes.Param{
{
Name: "lookup",
Types: []string{"ID", "Handle", "String", "User"}, Required: true,
},
},
Handler: func(ctx context.Context, in *expr.Vars) (out *expr.Vars, err error) {
var (
args = &usersSuspendArgs{
hasLookup: in.Has("lookup"),
}
)
if err = in.Decode(args); err != nil {
return
}
// Converting Lookup argument
if args.hasLookup {
aux := expr.Must(expr.Select(in, "lookup"))
switch aux.Type() {
case h.reg.Type("ID").Type():
args.lookupID = aux.Get().(uint64)
case h.reg.Type("Handle").Type():
args.lookupHandle = aux.Get().(string)
case h.reg.Type("String").Type():
args.lookupEmail = aux.Get().(string)
case h.reg.Type("User").Type():
args.lookupRes = aux.Get().(*types.User)
}
}
return out, h.suspend(ctx, args)
},
}
}
type (
usersUnsuspendArgs struct {
hasLookup bool
Lookup interface{}
lookupID uint64
lookupHandle string
lookupEmail string
lookupRes *types.User
}
)
func (a usersUnsuspendArgs) GetLookup() (bool, uint64, string, string, *types.User) {
return a.hasLookup, a.lookupID, a.lookupHandle, a.lookupEmail, a.lookupRes
}
// Unsuspend function Unsuspends user
//
// expects implementation of unsuspend function:
// func (h usersHandler) unsuspend(ctx context.Context, args *usersUnsuspendArgs) (err error) {
// return
// }
func (h usersHandler) Unsuspend() *atypes.Function {
return &atypes.Function{
Ref: "usersUnsuspend",
Kind: "function",
Labels: map[string]string{"unsuspend": "step", "users": "step,workflow"},
Meta: &atypes.FunctionMeta{
Short: "Unsuspends user",
},
Parameters: []*atypes.Param{
{
Name: "lookup",
Types: []string{"ID", "Handle", "String", "User"}, Required: true,
},
},
Handler: func(ctx context.Context, in *expr.Vars) (out *expr.Vars, err error) {
var (
args = &usersUnsuspendArgs{
hasLookup: in.Has("lookup"),
}
)
if err = in.Decode(args); err != nil {
return
}
// Converting Lookup argument
if args.hasLookup {
aux := expr.Must(expr.Select(in, "lookup"))
switch aux.Type() {
case h.reg.Type("ID").Type():
args.lookupID = aux.Get().(uint64)
case h.reg.Type("Handle").Type():
args.lookupHandle = aux.Get().(string)
case h.reg.Type("String").Type():
args.lookupEmail = aux.Get().(string)
case h.reg.Type("User").Type():
args.lookupRes = aux.Get().(*types.User)
}
}
return out, h.unsuspend(ctx, args)
},
}
}