Documentation
¶
Index ¶
- type ActionInjector
- func (ai *ActionInjector) InjectControllerMethod(controllerPath string, data ActionMethodData) error
- func (ai *ActionInjector) InjectRouteRegistration(controllerPath string, data ActionRegistrationData) error
- func (ai *ActionInjector) InjectRouteVariable(routesPath string, data ActionRouteData) error
- type ActionMethodData
- type ActionRegistrationData
- type ActionRouteData
- type Config
- type ControllerType
- type FileGenerator
- type GeneratedController
- type GeneratedField
- type Generator
- type MainInjector
- type RouteGenerator
- type RouteType
- type TemplateRenderer
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ActionInjector ¶ added in v1.0.0
type ActionInjector struct {
// contains filtered or unexported fields
}
ActionInjector handles injecting action code into existing controller and route files.
func NewActionInjector ¶ added in v1.0.0
func NewActionInjector() *ActionInjector
NewActionInjector creates a new ActionInjector.
func (*ActionInjector) InjectControllerMethod ¶ added in v1.0.0
func (ai *ActionInjector) InjectControllerMethod(controllerPath string, data ActionMethodData) error
InjectControllerMethod appends a method stub to the end of the controller file. It checks for duplicate methods before injecting.
func (*ActionInjector) InjectRouteRegistration ¶ added in v1.0.0
func (ai *ActionInjector) InjectRouteRegistration(controllerPath string, data ActionRegistrationData) error
InjectRouteRegistration inserts a route registration block before the final error return in the controller RegisterRoutes method. If the return statement is not found, it prints manual instructions.
func (*ActionInjector) InjectRouteVariable ¶ added in v1.0.0
func (ai *ActionInjector) InjectRouteVariable(routesPath string, data ActionRouteData) error
InjectRouteVariable appends a route variable declaration to the end of the routes file. It checks for duplicate route variables before injecting.
type ActionMethodData ¶ added in v1.0.0
ActionMethodData holds data for rendering the action_method.tmpl template.
type ActionRegistrationData ¶ added in v1.0.0
type ActionRegistrationData struct {
ResourceName string
Namespace string
NamespacePascal string
MethodName string
HTTPMethod string
HandlerVar string
}
ActionRegistrationData holds data for rendering the action_registration.tmpl template.
type ActionRouteData ¶ added in v1.0.0
type ActionRouteData struct {
ResourceName string
Namespace string
NamespacePascal string
MethodName string
ConstructorName string
ParamsStruct string // non-empty for RouteWithSlugs: the generated params struct definition
Path string
PluralName string
LowerMethodName string
}
ActionRouteData holds data for rendering the action_route.tmpl template.
type Config ¶
type Config struct {
ResourceName string
ModelName string
PluralName string
ModelPluralName string
TableName string
ModelTableName string
Namespace string
PackageName string
ModulePath string
ControllerType ControllerType
TableNameOverridden bool
ModelTableNameOverridden bool
PrimaryKeyColumn string // Override PK column name (empty = auto-detect)
Actions []string
IsAPI bool // Controller is JSON API
}
type ControllerType ¶
type ControllerType int
const ( ResourceController ControllerType = iota NormalController )
type FileGenerator ¶
type FileGenerator struct {
// contains filtered or unexported fields
}
func NewFileGenerator ¶
func NewFileGenerator() *FileGenerator
func (*FileGenerator) GenerateController ¶
func (*FileGenerator) GenerateControllerWithActionsForModel ¶ added in v1.0.0
func (fg *FileGenerator) GenerateControllerWithActionsForModel( cat *catalog.Catalog, resourceName string, namespace string, modelName string, tableName string, modelTableName string, controllerType ControllerType, modulePath string, databaseType string, tableNameOverridden bool, modelTableNameOverridden bool, nullType string, primaryKeyColumn string, inertia string, actions []string, isAPI bool, ) error
type GeneratedController ¶
type GeneratedController struct {
ResourceName string
ModelName string
PluralName string
ModelPluralName string
PluralResourceName string // The pluralized form of ResourceName (respects --table-name override)
ModelPluralResourceName string
ReceiverName string // Short receiver name for methods (e.g., "sf" for StudentFeedback)
Namespace string // "admin" (empty if no namespace)
NamespacePascal string // "Admin" (PascalCase for prefixing)
Package string
Fields []GeneratedField
ModulePath string
Type ControllerType
DatabaseType string
TableNameOverridden bool
IDType string // "uuid.UUID", "int32", "int64", "string"
IsAutoIncrementID bool // True for serial/bigserial
IDGoFieldName string // Go struct field name of PK (e.g., "ID", "UserID")
HasPrimaryKey bool // Whether the table has any primary key
Actions []string
IsAPI bool // Generate JSON API controller under controllers/api
}
type GeneratedField ¶
type Generator ¶
type Generator struct {
// contains filtered or unexported fields
}
func NewGenerator ¶
func (*Generator) SetNullType ¶ added in v1.0.0
type MainInjector ¶ added in v1.0.0
type MainInjector struct {
// contains filtered or unexported fields
}
func NewMainInjector ¶ added in v1.0.0
func NewMainInjector() *MainInjector
func (*MainInjector) InjectController ¶ added in v1.0.0
func (mi *MainInjector) InjectController(resourceName, namespace, pluralName string) error
InjectController adds a generated resource controller to controllers.Module. Returns nil if the file or expected module shape is not found, after printing instructions for a manual update.
type RouteGenerator ¶
type RouteGenerator struct {
// contains filtered or unexported fields
}
func NewRouteGenerator ¶
func NewRouteGenerator() *RouteGenerator
func (*RouteGenerator) GenerateRoutes ¶
func (rg *RouteGenerator) GenerateRoutes(resourceName, namespace, pluralName, idType string, actions []string) error
type RouteType ¶ added in v1.0.0
type RouteType int
RouteType represents the type of route constructor to use
func DetectRouteType ¶ added in v1.0.0
DetectRouteType analyzes a path string and returns the appropriate RouteType. It inspects path segments for :param patterns and maps them to routing constructors.
func (RouteType) ConstructorName ¶ added in v1.0.0
ConstructorName returns the routing package constructor function name for this RouteType. For RouteWithID, the idType parameter selects the appropriate type-specific constructor. For RouteWithSlugs, paramsTypeName is the generated params struct name used as the type parameter.
type TemplateRenderer ¶
type TemplateRenderer struct {
// contains filtered or unexported fields
}
func NewTemplateRenderer ¶
func NewTemplateRenderer() *TemplateRenderer
func (*TemplateRenderer) RenderControllerFile ¶
func (tr *TemplateRenderer) RenderControllerFile(controller *GeneratedController, inertia string) (string, error)