diff --git a/cmd/generate/generate.go b/cmd/generate/generate.go new file mode 100644 index 00000000..bf55c1ec --- /dev/null +++ b/cmd/generate/generate.go @@ -0,0 +1,67 @@ +package main + +import ( + "flag" + "fmt" + "github.com/0xJacky/Nginx-UI/server/model" + "github.com/0xJacky/Nginx-UI/server/settings" + "gorm.io/driver/sqlite" + "gorm.io/gen" + "gorm.io/gorm" + "gorm.io/gorm/logger" + "log" + "path" +) + +func main() { + // specify the output directory (default: "./query") + // ### if you want to query without context constrain, set mode gen.WithoutContext ### + g := gen.NewGenerator(gen.Config{ + OutPath: "../../server/query", + Mode: gen.WithoutContext | gen.WithDefaultQuery, + //if you want the nullable field generation property to be pointer type, set FieldNullable true + FieldNullable: true, + //if you want to assign field which has default value in `Create` API, set FieldCoverable true, reference: https://gorm.io/docs/create.html#Default-Values + FieldCoverable: true, + // if you want to generate field with unsigned integer type, set FieldSignable true + /* FieldSignable: true,*/ + //if you want to generate index tags from database, set FieldWithIndexTag true + /* FieldWithIndexTag: true,*/ + //if you want to generate type tags from database, set FieldWithTypeTag true + /* FieldWithTypeTag: true,*/ + //if you need unit tests for query code, set WithUnitTest true + /* WithUnitTest: true, */ + }) + + // reuse the database connection in Project or create a connection here + // if you want to use GenerateModel/GenerateModelAs, UseDB is necessary or it will panic + var confPath string + flag.StringVar(&confPath, "config", "app.ini", "Specify the configuration file") + flag.Parse() + + settings.Init(confPath) + dbPath := path.Join(path.Dir(settings.ConfPath), fmt.Sprintf("%s.db", settings.ServerSettings.Database)) + + var err error + db, err := gorm.Open(sqlite.Open(dbPath), &gorm.Config{ + Logger: logger.Default.LogMode(logger.Info), + PrepareStmt: true, + DisableForeignKeyConstraintWhenMigrating: true, + }) + + if err != nil { + log.Fatalln(err) + } + + g.UseDB(db) + + // apply basic crud api on structs or table models which is specified by table name with function + // GenerateModel/GenerateModelAs. And generator will generate table models' code when calling Excute. + g.ApplyBasic(model.GenerateAllModel()...) + + // apply diy interfaces on structs or table models + g.ApplyInterface(func(method model.Method) {}, model.GenerateAllModel()...) + + // execute the action of code generation + g.Execute() +} diff --git a/server/cmd/generate/generate.go b/server/cmd/generate/generate.go deleted file mode 100644 index 3b003d90..00000000 --- a/server/cmd/generate/generate.go +++ /dev/null @@ -1,67 +0,0 @@ -package main - -import ( - "flag" - "fmt" - "github.com/0xJacky/Nginx-UI/server/model" - "github.com/0xJacky/Nginx-UI/server/settings" - "gorm.io/driver/sqlite" - "gorm.io/gen" - "gorm.io/gorm" - "gorm.io/gorm/logger" - "log" - "path" -) - -func main() { - // specify the output directory (default: "./query") - // ### if you want to query without context constrain, set mode gen.WithoutContext ### - g := gen.NewGenerator(gen.Config{ - OutPath: "../../query", - Mode: gen.WithoutContext | gen.WithDefaultQuery, - //if you want the nullable field generation property to be pointer type, set FieldNullable true - FieldNullable: true, - //if you want to assign field which has default value in `Create` API, set FieldCoverable true, reference: https://gorm.io/docs/create.html#Default-Values - FieldCoverable: true, - // if you want to generate field with unsigned integer type, set FieldSignable true - /* FieldSignable: true,*/ - //if you want to generate index tags from database, set FieldWithIndexTag true - /* FieldWithIndexTag: true,*/ - //if you want to generate type tags from database, set FieldWithTypeTag true - /* FieldWithTypeTag: true,*/ - //if you need unit tests for query code, set WithUnitTest true - /* WithUnitTest: true, */ - }) - - // reuse the database connection in Project or create a connection here - // if you want to use GenerateModel/GenerateModelAs, UseDB is necessary or it will panic - var confPath string - flag.StringVar(&confPath, "config", "app.ini", "Specify the configuration file") - flag.Parse() - - settings.Init(confPath) - dbPath := path.Join(path.Dir(settings.ConfPath), fmt.Sprintf("%s.db", settings.ServerSettings.Database)) - - var err error - db, err := gorm.Open(sqlite.Open(dbPath), &gorm.Config{ - Logger: logger.Default.LogMode(logger.Info), - PrepareStmt: true, - DisableForeignKeyConstraintWhenMigrating: true, - }) - - if err != nil { - log.Fatalln(err) - } - - g.UseDB(db) - - // apply basic crud api on structs or table models which is specified by table name with function - // GenerateModel/GenerateModelAs. And generator will generate table models' code when calling Excute. - g.ApplyBasic(model.GenerateAllModel()...) - - // apply diy interfaces on structs or table models - g.ApplyInterface(func(method model.Method) {}, model.GenerateAllModel()...) - - // execute the action of code generation - g.Execute() -} diff --git a/server/query/auths.gen.go b/server/query/auths.gen.go index e62dd02c..9d1c4ac0 100644 --- a/server/query/auths.gen.go +++ b/server/query/auths.gen.go @@ -31,7 +31,7 @@ func newAuth(db *gorm.DB, opts ...gen.DOOption) auth { _auth.ID = field.NewInt(tableName, "id") _auth.CreatedAt = field.NewTime(tableName, "created_at") _auth.UpdatedAt = field.NewTime(tableName, "updated_at") - _auth.DeletedAt = field.NewTime(tableName, "deleted_at") + _auth.DeletedAt = field.NewField(tableName, "deleted_at") _auth.Name = field.NewString(tableName, "name") _auth.Password = field.NewString(tableName, "password") @@ -47,7 +47,7 @@ type auth struct { ID field.Int CreatedAt field.Time UpdatedAt field.Time - DeletedAt field.Time + DeletedAt field.Field Name field.String Password field.String @@ -69,7 +69,7 @@ func (a *auth) updateTableName(table string) *auth { a.ID = field.NewInt(table, "id") a.CreatedAt = field.NewTime(table, "created_at") a.UpdatedAt = field.NewTime(table, "updated_at") - a.DeletedAt = field.NewTime(table, "deleted_at") + a.DeletedAt = field.NewField(table, "deleted_at") a.Name = field.NewString(table, "name") a.Password = field.NewString(table, "password") diff --git a/server/query/certs.gen.go b/server/query/certs.gen.go index faa0f9f3..940a625f 100644 --- a/server/query/certs.gen.go +++ b/server/query/certs.gen.go @@ -31,7 +31,7 @@ func newCert(db *gorm.DB, opts ...gen.DOOption) cert { _cert.ID = field.NewInt(tableName, "id") _cert.CreatedAt = field.NewTime(tableName, "created_at") _cert.UpdatedAt = field.NewTime(tableName, "updated_at") - _cert.DeletedAt = field.NewTime(tableName, "deleted_at") + _cert.DeletedAt = field.NewField(tableName, "deleted_at") _cert.Name = field.NewString(tableName, "name") _cert.Domains = field.NewField(tableName, "domains") _cert.Filename = field.NewString(tableName, "filename") @@ -59,7 +59,7 @@ type cert struct { ID field.Int CreatedAt field.Time UpdatedAt field.Time - DeletedAt field.Time + DeletedAt field.Field Name field.String Domains field.Field Filename field.String @@ -89,7 +89,7 @@ func (c *cert) updateTableName(table string) *cert { c.ID = field.NewInt(table, "id") c.CreatedAt = field.NewTime(table, "created_at") c.UpdatedAt = field.NewTime(table, "updated_at") - c.DeletedAt = field.NewTime(table, "deleted_at") + c.DeletedAt = field.NewField(table, "deleted_at") c.Name = field.NewString(table, "name") c.Domains = field.NewField(table, "domains") c.Filename = field.NewString(table, "filename") diff --git a/server/query/config_backups.gen.go b/server/query/config_backups.gen.go index 549f902c..a1f195b1 100644 --- a/server/query/config_backups.gen.go +++ b/server/query/config_backups.gen.go @@ -31,7 +31,7 @@ func newConfigBackup(db *gorm.DB, opts ...gen.DOOption) configBackup { _configBackup.ID = field.NewInt(tableName, "id") _configBackup.CreatedAt = field.NewTime(tableName, "created_at") _configBackup.UpdatedAt = field.NewTime(tableName, "updated_at") - _configBackup.DeletedAt = field.NewTime(tableName, "deleted_at") + _configBackup.DeletedAt = field.NewField(tableName, "deleted_at") _configBackup.Name = field.NewString(tableName, "name") _configBackup.FilePath = field.NewString(tableName, "file_path") _configBackup.Content = field.NewString(tableName, "content") @@ -48,7 +48,7 @@ type configBackup struct { ID field.Int CreatedAt field.Time UpdatedAt field.Time - DeletedAt field.Time + DeletedAt field.Field Name field.String FilePath field.String Content field.String @@ -71,7 +71,7 @@ func (c *configBackup) updateTableName(table string) *configBackup { c.ID = field.NewInt(table, "id") c.CreatedAt = field.NewTime(table, "created_at") c.UpdatedAt = field.NewTime(table, "updated_at") - c.DeletedAt = field.NewTime(table, "deleted_at") + c.DeletedAt = field.NewField(table, "deleted_at") c.Name = field.NewString(table, "name") c.FilePath = field.NewString(table, "file_path") c.Content = field.NewString(table, "content") diff --git a/server/query/dns_credentials.gen.go b/server/query/dns_credentials.gen.go index 359ef0fa..b2adba4d 100644 --- a/server/query/dns_credentials.gen.go +++ b/server/query/dns_credentials.gen.go @@ -31,7 +31,7 @@ func newDnsCredential(db *gorm.DB, opts ...gen.DOOption) dnsCredential { _dnsCredential.ID = field.NewInt(tableName, "id") _dnsCredential.CreatedAt = field.NewTime(tableName, "created_at") _dnsCredential.UpdatedAt = field.NewTime(tableName, "updated_at") - _dnsCredential.DeletedAt = field.NewTime(tableName, "deleted_at") + _dnsCredential.DeletedAt = field.NewField(tableName, "deleted_at") _dnsCredential.Name = field.NewString(tableName, "name") _dnsCredential.Config = field.NewField(tableName, "config") _dnsCredential.Provider = field.NewString(tableName, "provider") @@ -48,7 +48,7 @@ type dnsCredential struct { ID field.Int CreatedAt field.Time UpdatedAt field.Time - DeletedAt field.Time + DeletedAt field.Field Name field.String Config field.Field Provider field.String @@ -71,7 +71,7 @@ func (d *dnsCredential) updateTableName(table string) *dnsCredential { d.ID = field.NewInt(table, "id") d.CreatedAt = field.NewTime(table, "created_at") d.UpdatedAt = field.NewTime(table, "updated_at") - d.DeletedAt = field.NewTime(table, "deleted_at") + d.DeletedAt = field.NewField(table, "deleted_at") d.Name = field.NewString(table, "name") d.Config = field.NewField(table, "config") d.Provider = field.NewString(table, "provider") diff --git a/server/query/sites.gen.go b/server/query/sites.gen.go index 432ebd51..f31508f9 100644 --- a/server/query/sites.gen.go +++ b/server/query/sites.gen.go @@ -31,7 +31,7 @@ func newSite(db *gorm.DB, opts ...gen.DOOption) site { _site.ID = field.NewInt(tableName, "id") _site.CreatedAt = field.NewTime(tableName, "created_at") _site.UpdatedAt = field.NewTime(tableName, "updated_at") - _site.DeletedAt = field.NewTime(tableName, "deleted_at") + _site.DeletedAt = field.NewField(tableName, "deleted_at") _site.Path = field.NewString(tableName, "path") _site.Advanced = field.NewBool(tableName, "advanced") @@ -47,7 +47,7 @@ type site struct { ID field.Int CreatedAt field.Time UpdatedAt field.Time - DeletedAt field.Time + DeletedAt field.Field Path field.String Advanced field.Bool @@ -69,7 +69,7 @@ func (s *site) updateTableName(table string) *site { s.ID = field.NewInt(table, "id") s.CreatedAt = field.NewTime(table, "created_at") s.UpdatedAt = field.NewTime(table, "updated_at") - s.DeletedAt = field.NewTime(table, "deleted_at") + s.DeletedAt = field.NewField(table, "deleted_at") s.Path = field.NewString(table, "path") s.Advanced = field.NewBool(table, "advanced")