Documentation ¶
Index ¶
- Constants
- Variables
- func BuildJoinTag(r *state.Relation) string
- func BuildRelationFields(table objects.Table, relations []state.Relation) (mappedRelations []state.Relation)
- func BuildRlsTag(rlsList objects.Policies, name string, rlsType supabase.RlsType) string
- func CreateInternalFolder(basePath string) (err error)
- func DefaultWriter(filePath string) (*os.File, error)
- func ExtractRpcParam(fn *objects.Function) (params []raiden.RpcParam, usePrefix bool, err error)
- func ExtractRpcTable(def string) (string, map[string]*RpcScannedTable, error)
- func Generate(input GenerateInput, writer io.Writer) error
- func GenerateApplyMainFunction(basePath string, config *raiden.Config, generateFn GenerateFn) error
- func GenerateArrayDeclaration(value reflect.Value, withoutQuote bool) string
- func GenerateConfig(basePath string, config *raiden.Config, generateFn GenerateFn) error
- func GenerateController(file string, data GenerateControllerData, generateFn GenerateFn) error
- func GenerateHelloWorldController(basePath string, generateFn GenerateFn) (err error)
- func GenerateHelloWorldJob(basePath string, generateFn GenerateFn) (err error)
- func GenerateImportMainFunction(basePath string, config *raiden.Config, generateFn GenerateFn) error
- func GenerateJob(file string, data GenerateJobData, generateFn GenerateFn) error
- func GenerateJobRegister(basePath string, projectName string, generateFn GenerateFn) error
- func GenerateMainFunction(basePath string, config *raiden.Config, generateFn GenerateFn) error
- func GenerateModel(folderPath string, input *GenerateModelInput, generateFn GenerateFn) error
- func GenerateModelRegister(basePath string, projectName string, generateFn GenerateFn) error
- func GenerateModels(basePath string, tables []*GenerateModelInput, generateFn GenerateFn) (err error)
- func GenerateRole(folderPath string, role objects.Role, generateFn GenerateFn) error
- func GenerateRoleRegister(basePath string, projectName string, generateFn GenerateFn) error
- func GenerateRoles(basePath string, roles []objects.Role, generateFn GenerateFn) (err error)
- func GenerateRoute(basePath string, projectName string, generateFn GenerateFn) error
- func GenerateRpc(basePath string, projectName string, functions []objects.Function, ...) (err error)
- func GenerateRpcRegister(basePath string, projectName string, generateFn GenerateFn) error
- func GenerateStorage(folderPath string, storage *GenerateStorageInput, generateFn GenerateFn) error
- func GenerateStorages(basePath string, storages []*GenerateStorageInput, generateFn GenerateFn) (err error)
- func GenerateStoragesRegister(basePath string, projectName string, generateFn GenerateFn) error
- func RpcNormalizeTableAliases(mapTables map[string]*RpcScannedTable) error
- func WalkScanJob(jobDir string) ([]string, error)
- func WalkScanModel(modelDir string) ([]string, error)
- func WalkScanRole(roleDir string) ([]string, error)
- func WalkScanRpc(rpcDir string) ([]string, error)
- func WalkScanStorage(storageDir string) ([]string, error)
- type ControllerFieldAttribute
- type ExtractRpcDataResult
- func (r *ExtractRpcDataResult) GetBehavior() (behavior string)
- func (r *ExtractRpcDataResult) GetModelDecl() (modelDecl string)
- func (r *ExtractRpcDataResult) GetParams(mapImports map[string]bool) (columns []RpcColumn, err error)
- func (r *ExtractRpcDataResult) GetReturn(mapImports map[string]bool) (returnDecl string, returnColumns []RpcColumn, isReturnArr bool, err error)
- func (r *ExtractRpcDataResult) GetSecurity() (security string)
- type FoundRoute
- type GenerateApplyMainFunctionData
- type GenerateControllerData
- type GenerateFn
- type GenerateImportMainFunctionData
- type GenerateInput
- type GenerateJobData
- type GenerateMainFunctionData
- type GenerateModelColumn
- type GenerateModelData
- type GenerateModelInput
- type GenerateRegisterJobData
- type GenerateRegisterModelData
- type GenerateRegisterRoleData
- type GenerateRegisterRpcData
- type GenerateRegisterStorageData
- type GenerateRoleData
- type GenerateRouteItem
- type GenerateRouterData
- type GenerateRpcData
- type GenerateStorageInput
- type GenerateStoragesData
- type JobFieldAttribute
- type Rls
- type RpcColumn
- type RpcScannedTable
Constants ¶
const ( ApplyMainFunctionDirTemplate = "/cmd/apply" ApplyMainFunctionTemplate = `` /* 1711-byte string literal not displayed */ )
const ( ConfigDir = "configs" ConfigFile = "app" ConfigTemplate = `` /* 775-byte string literal not displayed */ )
const ( ControllerDir = "internal/controllers" ControllerTemplate = `package {{ .Package }} {{- if gt (len .Imports) 0 }} import ( {{- range .Imports}} {{.}} {{- end}} ) {{- end }} type {{ .Name }}Request struct { {{- if not .RequestFields}} // Add your request data {{ else }} {{- range .RequestFields}} {{ .Field }} {{ .Type }} {{ .Tag }} {{- end }} {{- end }} } type {{ .Name }}Response struct { {{- if not .ResponseFields}} // Add your response data {{ else }} {{- range .ResponseFields}} {{ .Field }} {{ .Type }} {{ .Tag }} {{- end}} {{- end }} } type {{ .Name }}Controller struct { raiden.ControllerBase Http string ` + "{{ .HttpTag }}" + ` Payload *{{ .Name }}Request Result {{ .Name }}Response } func (c *{{ .Name }}Controller) Get(ctx raiden.Context) error { {{ .DefaultAction }} return ctx.SendJson(c.Result) } ` )
const ( ImportMainFunctionDirTemplate = "/cmd/import" ImportMainFunctionTemplate = `` /* 2003-byte string literal not displayed */ )
const ( JobRegisterFilename = "jobs.go" JobRegisterDir = "internal/bootstrap" JobDir = "internal/jobs" JobRegisterTemplate = `` /* 274-byte string literal not displayed */ )
const ( MainFunctionDirTemplate = "/cmd/%s" MainFunctionTemplate = `` /* 431-byte string literal not displayed */ )
const ( ModelDir = "internal/models" ModelTemplate = `package {{ .Package }} {{- if gt (len .Imports) 0 }} import ( {{- range .Imports}} "{{.}}" {{- end}} ) {{- end }} type {{ .StructName }} struct { db.ModelBase {{- range .Columns }} {{ .Name | ToGoIdentifier }} {{ .Type }} ` + "`{{ .Tag }}`" + ` {{- end }} // Table information Metadata string ` + "`json:\"-\" schema:\"{{ .Schema}}\" tableName:\"{{ .TableName }}\" rlsEnable:\"{{ .RlsEnable }}\" rlsForced:\"{{ .RlsForced }}\"`" + ` // Access control Acl string ` + "`json:\"-\" {{ .RlsTag }}`" + ` {{- if gt (len .Relations) 0 }} // Relations {{- end }} {{- range .Relations }} {{ .Table | ToGoIdentifier }} {{ .Type }} ` + "`{{ .Tag }}`" + ` {{- end }} } ` )
const ( ModelRegisterFilename = "models.go" ModelRegisterDir = "internal/bootstrap" ModelRegisterTemplate = `` /* 263-byte string literal not displayed */ )
const ( RoleDir = "internal/roles" RoleTemplate = `` /* 1603-byte string literal not displayed */ )
const ( RoleRegisterFilename = "roles.go" RoleRegisterDir = "internal/bootstrap" RoleRegisterTemplate = `` /* 258-byte string literal not displayed */ )
const ( RouterFilename = "route.go" RouterDir = "internal/bootstrap" RouterTemplate = `` /* 592-byte string literal not displayed */ )
const ( RpcDir = "internal/rpc" RpcTemplate = `package {{ .Package }} {{- if gt (len .Imports) 0 }} import ( {{- range .Imports}} {{.}} {{- end}} ) {{- end }} type {{ .Name }}Params struct { {{- range .Params }} {{ .Field }} {{ .Type }} ` + "`{{ .Tag }}`" + ` {{- end }} } {{- if gt (len .ReturnColumn) 0 }} type {{ .Name }}Item struct { {{- range .ReturnColumn }} {{ .Field }} {{ .Type }} ` + "`{{ .Tag }}`" + ` {{- end }} } type {{ .Name }}Result {{ if .IsReturnArr }}[]{{ end }}{{ .Name }}Item {{- else }} type {{ .Name }}Result {{ if .IsReturnArr }}[]{{ end }}{{ .ReturnDecl }} {{- end }} type {{ .Name }} struct { raiden.RpcBase Params *{{ .Name }}Params ` + "`json:\"-\"`" + ` Return {{ .Name }}Result ` + "`json:\"-\"`" + ` } func (r *{{ .Name }}) GetName() string { return "{{ .Name | ToSnakeCase }}" } {{- if ne .Schema "public" }} func (r *{{.Name }}) GetSchema() string { return "{{ .Schema }}" } {{- end }} {{- if not .UseParamPrefix }} func (r *{{.Name }}) UseParamPrefix() bool { return false } {{- end }} {{- if ne .Security "RpcSecurityTypeInvoker" }} func (r *{{.Name }}) GetSecurity() raiden.RpcSecurityType { return raiden.{{ .Security }} } {{- end }} {{- if ne .Behavior "RpcBehaviorVolatile" }} func (r *{{.Name }}) GetBehavior() raiden.RpcBehaviorType { return raiden.{{ .Behavior }} } {{- end }} func (r *{{.Name }}) GetReturnType() raiden.RpcReturnDataType { return raiden.{{ .ReturnType }} } {{- if ne .Models "" }} func (r *{{ .Name }}) BindModels() { {{ .Models }} } {{- end }} func (r *{{ .Name }}) GetRawDefinition() string { return ` + "`{{ .Definition }}`" + ` }` )
const ( RpcRegisterFilename = "rpc.go" RpcRegisterDir = "internal/bootstrap" RpcRegisterTemplate = `` /* 251-byte string literal not displayed */ )
const ( StorageDir = "internal/storages" StorageTemplate = `package {{ .Package }} {{- if gt (len .Imports) 0 }} import ( {{- range .Imports}} {{.}} {{- end}} ) {{- end }} type {{ .StructName | ToGoIdentifier }} struct { raiden.BucketBase // Access control Acl string ` + "`json:\"-\" {{ .ObjectAcl }}`" + ` } func (r *{{ .StructName | ToGoIdentifier }}) Name() string { return "{{ .Name }}" } {{- if .Public }} func (r *{{ .StructName | ToGoIdentifier }}) Public() bool { return {{ .Public }} } {{- end }} {{- if ne .FileSizeLimit 0}} func (r *{{ .StructName | ToGoIdentifier }}) FileSizeLimit() int { return {{ .FileSizeLimit }} // bytes } {{- end }} {{- if ne .AllowedMimeTypes "" }} func (r *{{ .StructName | ToGoIdentifier }}) AllowedMimeTypes() []string { return {{ .AllowedMimeTypes }} } {{- end }} ` )
const ( StorageRegisterFilename = "storages.go" StorageRegisterDir = "internal/bootstrap" StorageRegisterTemplate = `` /* 271-byte string literal not displayed */ )
const (
JobTemplate = `` /* 948-byte string literal not displayed */
)
Variables ¶
var ApplyLogger hclog.Logger = logger.HcLog().Named("generator.apply")
var ConfigLogger hclog.Logger = logger.HcLog().Named("generator.config")
var ControllerLogger hclog.Logger = logger.HcLog().Named("generator.controller")
var GeneratorLogger hclog.Logger = logger.HcLog().Named("generator")
var ImportLogger hclog.Logger = logger.HcLog().Named("generator.import")
var JobLogger hclog.Logger = logger.HcLog().Named("generator.Job")
var JobRegisterLogger hclog.Logger = logger.HcLog().Named("generator.job_register")
var MainLogger hclog.Logger = logger.HcLog().Named("generator.main")
var ModelLogger hclog.Logger = logger.HcLog().Named("generator.model")
var ModelRegisterLogger hclog.Logger = logger.HcLog().Named("generator.model_register")
var RoleLogger hclog.Logger = logger.HcLog().Named("generator.role")
var RoleRegisterLogger hclog.Logger = logger.HcLog().Named("generator.role_register")
var RouterLogger hclog.Logger = logger.HcLog().Named("generator.router")
var RpcLogger hclog.Logger = logger.HcLog().Named("generator.rpc")
var RpcRegisterLogger hclog.Logger = logger.HcLog().Named("generator.rpc_register")
var StorageLogger hclog.Logger = logger.HcLog().Named("generator.storage")
var StorageRegisterLogger hclog.Logger = logger.HcLog().Named("generator.storage_register")
Functions ¶
func BuildJoinTag ¶
func BuildRelationFields ¶
func BuildRlsTag ¶
func CreateInternalFolder ¶
func DefaultWriter ¶
----- Generate functionality -----
func ExtractRpcParam ¶
func ExtractRpcTable ¶
func ExtractRpcTable(def string) (string, map[string]*RpcScannedTable, error)
code for detect table in query and return array of object contain table name, table aliases and relation
func GenerateApplyMainFunction ¶
func GenerateApplyMainFunction(basePath string, config *raiden.Config, generateFn GenerateFn) error
func GenerateConfig ¶
func GenerateConfig(basePath string, config *raiden.Config, generateFn GenerateFn) error
func GenerateController ¶
func GenerateController(file string, data GenerateControllerData, generateFn GenerateFn) error
----- Generate controller -----
func GenerateHelloWorldController ¶
func GenerateHelloWorldController(basePath string, generateFn GenerateFn) (err error)
----- Generate hello world -----
func GenerateHelloWorldJob ¶
func GenerateHelloWorldJob(basePath string, generateFn GenerateFn) (err error)
----- Generate hello world -----
func GenerateImportMainFunction ¶
func GenerateImportMainFunction(basePath string, config *raiden.Config, generateFn GenerateFn) error
func GenerateJob ¶
func GenerateJob(file string, data GenerateJobData, generateFn GenerateFn) error
----- Generate Job -----
func GenerateJobRegister ¶
func GenerateJobRegister(basePath string, projectName string, generateFn GenerateFn) error
func GenerateMainFunction ¶
func GenerateMainFunction(basePath string, config *raiden.Config, generateFn GenerateFn) error
func GenerateModel ¶
func GenerateModel(folderPath string, input *GenerateModelInput, generateFn GenerateFn) error
func GenerateModelRegister ¶
func GenerateModelRegister(basePath string, projectName string, generateFn GenerateFn) error
func GenerateModels ¶
func GenerateModels(basePath string, tables []*GenerateModelInput, generateFn GenerateFn) (err error)
func GenerateRole ¶
func GenerateRole(folderPath string, role objects.Role, generateFn GenerateFn) error
func GenerateRoleRegister ¶
func GenerateRoleRegister(basePath string, projectName string, generateFn GenerateFn) error
func GenerateRoles ¶
func GenerateRoles(basePath string, roles []objects.Role, generateFn GenerateFn) (err error)
func GenerateRoute ¶
func GenerateRoute(basePath string, projectName string, generateFn GenerateFn) error
Generate route configuration file
func GenerateRpc ¶
func GenerateRpcRegister ¶
func GenerateRpcRegister(basePath string, projectName string, generateFn GenerateFn) error
func GenerateStorage ¶
func GenerateStorage(folderPath string, storage *GenerateStorageInput, generateFn GenerateFn) error
func GenerateStorages ¶
func GenerateStorages(basePath string, storages []*GenerateStorageInput, generateFn GenerateFn) (err error)
func GenerateStoragesRegister ¶
func GenerateStoragesRegister(basePath string, projectName string, generateFn GenerateFn) error
func RpcNormalizeTableAliases ¶
func RpcNormalizeTableAliases(mapTables map[string]*RpcScannedTable) error
func WalkScanJob ¶
func WalkScanModel ¶
func WalkScanRole ¶
func WalkScanRpc ¶
func WalkScanStorage ¶
Types ¶
type ControllerFieldAttribute ¶
----- Define type, variable and constant -----
type ExtractRpcDataResult ¶
type ExtractRpcDataResult struct { Rpc raiden.RpcBase MapScannedTable map[string]*RpcScannedTable OriginalReturnType string UseParamPrefix bool }
----- Define type, variable and constant -----
func ExtractRpcFunction ¶
func (*ExtractRpcDataResult) GetBehavior ¶
func (r *ExtractRpcDataResult) GetBehavior() (behavior string)
func (*ExtractRpcDataResult) GetModelDecl ¶
func (r *ExtractRpcDataResult) GetModelDecl() (modelDecl string)
func (*ExtractRpcDataResult) GetParams ¶
func (r *ExtractRpcDataResult) GetParams(mapImports map[string]bool) (columns []RpcColumn, err error)
func (*ExtractRpcDataResult) GetSecurity ¶
func (r *ExtractRpcDataResult) GetSecurity() (security string)
type FoundRoute ¶
type FoundRoute struct { Package string Name string Tag string Methods []string Model string Storage string }
----- Define type, variable and constant -----
type GenerateApplyMainFunctionData ¶
----- Define type, variable and constant -----
type GenerateControllerData ¶
type GenerateControllerData struct { DefaultAction string HttpTag string Imports []string Name string Package string RequestFields []ControllerFieldAttribute ResponseFields []ControllerFieldAttribute }
type GenerateFn ¶
type GenerateFn func(input GenerateInput, writer io.Writer) error
type GenerateImportMainFunctionData ¶
----- Define type, variable and constant -----
type GenerateInput ¶
type GenerateInput struct { BindData any Template string TemplateName string OutputPath string FuncMap []template.FuncMap }
----- Define type, variable and constant -----
type GenerateJobData ¶
type GenerateMainFunctionData ¶
----- Define type, variable and constant -----
type GenerateModelColumn ¶
----- Define type, variable and constant -----
func MapTableAttributes ¶
func MapTableAttributes(table objects.Table, validationTags state.ModelValidationTag) (columns []GenerateModelColumn, importsPath []string)
map table to column, map pg type to go type and get dependency import path
type GenerateModelData ¶
type GenerateModelData struct { Columns []GenerateModelColumn Imports []string Package string Relations []state.Relation RlsTag string RlsEnable bool RlsForced bool StructName string Schema string TableName string }
----- Define type, variable and constant -----
type GenerateModelInput ¶
type GenerateModelInput struct { Table objects.Table Relations []state.Relation Policies objects.Policies ValidationTags state.ModelValidationTag }
----- Define type, variable and constant -----
type GenerateRegisterJobData ¶
----- Define type, variable and constant -----
type GenerateRegisterModelData ¶
----- Define type, variable and constant -----
type GenerateRegisterRoleData ¶
----- Define type, variable and constant -----
type GenerateRegisterRpcData ¶
----- Define type, variable and constant -----
type GenerateRegisterStorageData ¶
----- Define type, variable and constant -----
type GenerateRoleData ¶
type GenerateRoleData struct { Imports []string Package string Name string DefaultLimitConnection int ConnectionLimit int InheritRole bool IsReplicationRole bool IsSuperuser bool CanBypassRls bool CanCreateDB bool CanCreateRole bool CanLogin bool ValidUntil string }
----- Define type, variable and constant -----
type GenerateRouteItem ¶
type GenerateRouteItem struct { Type string Path string Methods string Controller string Model string Storage string }
----- Define type, variable and constant -----
func WalkScanControllers ¶
func WalkScanControllers(controllerPath string) ([]GenerateRouteItem, error)
type GenerateRouterData ¶
type GenerateRouterData struct { Imports []string Package string Routes []GenerateRouteItem }
----- Define type, variable and constant -----
type GenerateRpcData ¶
type GenerateRpcData struct { Package string Imports []string UseParamPrefix bool Params []RpcColumn ReturnType string ReturnColumn []RpcColumn ReturnDecl string IsReturnArr bool Name string Schema string Security string Behavior string Models string Definition string }
----- Define type, variable and constant -----
type GenerateStorageInput ¶
type GenerateStoragesData ¶
type JobFieldAttribute ¶
----- Define type, variable and constant -----
type RpcScannedTable ¶
----- Define type, variable and constant -----