|
1 | 1 | package model
|
2 | 2 |
|
3 | 3 | import (
|
4 |
| - "fmt" |
5 |
| - "github.com/0xJacky/Nginx-UI/internal/logger" |
6 |
| - "github.com/0xJacky/Nginx-UI/settings" |
7 |
| - "github.com/gin-gonic/gin" |
8 |
| - "gorm.io/driver/sqlite" |
9 |
| - "gorm.io/gen" |
10 |
| - "gorm.io/gorm" |
11 |
| - gormlogger "gorm.io/gorm/logger" |
12 |
| - "path" |
13 |
| - "time" |
| 4 | + "fmt" |
| 5 | + "github.com/0xJacky/Nginx-UI/internal/logger" |
| 6 | + "github.com/0xJacky/Nginx-UI/settings" |
| 7 | + "github.com/gin-gonic/gin" |
| 8 | + "gorm.io/driver/sqlite" |
| 9 | + "gorm.io/gen" |
| 10 | + "gorm.io/gorm" |
| 11 | + gormlogger "gorm.io/gorm/logger" |
| 12 | + "path" |
| 13 | + "time" |
14 | 14 | )
|
15 | 15 |
|
16 | 16 | var db *gorm.DB
|
17 | 17 |
|
18 | 18 | type Model struct {
|
19 |
| - ID int `gorm:"primary_key" json:"id"` |
20 |
| - CreatedAt time.Time `json:"created_at"` |
21 |
| - UpdatedAt time.Time `json:"updated_at"` |
22 |
| - DeletedAt *gorm.DeletedAt `gorm:"index" json:"deleted_at"` |
| 19 | + ID int `gorm:"primary_key" json:"id"` |
| 20 | + CreatedAt time.Time `json:"created_at"` |
| 21 | + UpdatedAt time.Time `json:"updated_at"` |
| 22 | + DeletedAt *gorm.DeletedAt `gorm:"index" json:"deleted_at"` |
23 | 23 | }
|
24 | 24 |
|
25 | 25 | func GenerateAllModel() []any {
|
26 |
| - return []any{ |
27 |
| - ConfigBackup{}, |
28 |
| - Auth{}, |
29 |
| - AuthToken{}, |
30 |
| - Cert{}, |
31 |
| - ChatGPTLog{}, |
32 |
| - Site{}, |
33 |
| - Stream{}, |
34 |
| - DnsCredential{}, |
35 |
| - Environment{}, |
36 |
| - Notification{}, |
37 |
| - } |
| 26 | + return []any{ |
| 27 | + ConfigBackup{}, |
| 28 | + Auth{}, |
| 29 | + AuthToken{}, |
| 30 | + Cert{}, |
| 31 | + ChatGPTLog{}, |
| 32 | + Site{}, |
| 33 | + Stream{}, |
| 34 | + DnsCredential{}, |
| 35 | + Environment{}, |
| 36 | + Notification{}, |
| 37 | + } |
38 | 38 | }
|
39 | 39 |
|
40 | 40 | func logMode() gormlogger.Interface {
|
41 |
| - switch settings.ServerSettings.RunMode { |
42 |
| - case gin.ReleaseMode: |
43 |
| - return gormlogger.Default.LogMode(gormlogger.Warn) |
44 |
| - default: |
45 |
| - fallthrough |
46 |
| - case gin.DebugMode: |
47 |
| - return gormlogger.Default.LogMode(gormlogger.Info) |
48 |
| - } |
| 41 | + switch settings.ServerSettings.RunMode { |
| 42 | + case gin.ReleaseMode: |
| 43 | + return gormlogger.Default.LogMode(gormlogger.Warn) |
| 44 | + default: |
| 45 | + fallthrough |
| 46 | + case gin.DebugMode: |
| 47 | + return gormlogger.Default.LogMode(gormlogger.Info) |
| 48 | + } |
49 | 49 | }
|
50 | 50 |
|
51 | 51 | func UseDB() *gorm.DB {
|
52 |
| - return db |
| 52 | + return db |
53 | 53 | }
|
54 | 54 |
|
55 | 55 | func Init() *gorm.DB {
|
56 |
| - dbPath := path.Join(path.Dir(settings.ConfPath), fmt.Sprintf("%s.db", settings.ServerSettings.Database)) |
| 56 | + dbPath := path.Join(path.Dir(settings.ConfPath), fmt.Sprintf("%s.db", settings.ServerSettings.Database)) |
57 | 57 |
|
58 |
| - var err error |
59 |
| - db, err = gorm.Open(sqlite.Open(dbPath), &gorm.Config{ |
60 |
| - Logger: logMode(), |
61 |
| - PrepareStmt: true, |
62 |
| - DisableForeignKeyConstraintWhenMigrating: true, |
63 |
| - }) |
| 58 | + var err error |
| 59 | + db, err = gorm.Open(sqlite.Open(dbPath), &gorm.Config{ |
| 60 | + Logger: logMode(), |
| 61 | + PrepareStmt: true, |
| 62 | + DisableForeignKeyConstraintWhenMigrating: true, |
| 63 | + }) |
64 | 64 |
|
65 |
| - if err != nil { |
66 |
| - logger.Fatal(err.Error()) |
67 |
| - } |
| 65 | + if err != nil { |
| 66 | + logger.Fatal(err.Error()) |
| 67 | + } |
68 | 68 |
|
69 |
| - // Migrate the schema |
70 |
| - err = db.AutoMigrate(GenerateAllModel()...) |
71 |
| - if err != nil { |
72 |
| - logger.Fatal(err.Error()) |
73 |
| - } |
| 69 | + // Migrate the schema |
| 70 | + err = db.AutoMigrate(GenerateAllModel()...) |
| 71 | + if err != nil { |
| 72 | + logger.Fatal(err.Error()) |
| 73 | + } |
74 | 74 |
|
75 |
| - return db |
| 75 | + return db |
76 | 76 | }
|
77 | 77 |
|
78 | 78 | type Pagination struct {
|
79 |
| - Total int64 `json:"total"` |
80 |
| - PerPage int `json:"per_page"` |
81 |
| - CurrentPage int `json:"current_page"` |
82 |
| - TotalPages int64 `json:"total_pages"` |
| 79 | + Total int64 `json:"total"` |
| 80 | + PerPage int `json:"per_page"` |
| 81 | + CurrentPage int `json:"current_page"` |
| 82 | + TotalPages int64 `json:"total_pages"` |
83 | 83 | }
|
84 | 84 |
|
85 | 85 | type DataList struct {
|
86 |
| - Data interface{} `json:"data"` |
87 |
| - Pagination Pagination `json:"pagination,omitempty"` |
| 86 | + Data interface{} `json:"data"` |
| 87 | + Pagination Pagination `json:"pagination,omitempty"` |
88 | 88 | }
|
89 | 89 |
|
90 | 90 | func TotalPage(total int64, pageSize int) int64 {
|
91 |
| - n := total / int64(pageSize) |
92 |
| - if total%int64(pageSize) > 0 { |
93 |
| - n++ |
94 |
| - } |
95 |
| - return n |
| 91 | + n := total / int64(pageSize) |
| 92 | + if total%int64(pageSize) > 0 { |
| 93 | + n++ |
| 94 | + } |
| 95 | + return n |
96 | 96 | }
|
97 | 97 |
|
98 | 98 | type Method interface {
|
99 |
| - // FirstByID Where("id=@id") |
100 |
| - FirstByID(id int) (*gen.T, error) |
101 |
| - // DeleteByID update @@table set deleted_at=strftime('%Y-%m-%d %H:%M:%S','now') where id=@id |
102 |
| - DeleteByID(id int) error |
| 99 | + // FirstByID Where("id=@id") |
| 100 | + FirstByID(id int) (*gen.T, error) |
| 101 | + // DeleteByID update @@table set deleted_at=strftime('%Y-%m-%d %H:%M:%S','now') where id=@id |
| 102 | + DeleteByID(id int) error |
103 | 103 | }
|
0 commit comments