feat(wip): site category

This commit is contained in:
Jacky 2024-10-24 23:09:16 +08:00
parent ed3c02fc6f
commit 7ad5cac3b8
No known key found for this signature in database
GPG key ID: 215C21B10DF38B4D
73 changed files with 713 additions and 235 deletions

0
.db Normal file
View file

View file

@ -13,7 +13,7 @@ import (
func GetAcmeUser(c *gin.Context) { func GetAcmeUser(c *gin.Context) {
u := query.AcmeUser u := query.AcmeUser
id := cast.ToInt(c.Param("id")) id := cast.ToUint64(c.Param("id"))
user, err := u.FirstByID(id) user, err := u.FirstByID(id)
if err != nil { if err != nil {
api.ErrHandler(c, err) api.ErrHandler(c, err)
@ -79,7 +79,7 @@ func RecoverAcmeUser(c *gin.Context) {
} }
func RegisterAcmeUser(c *gin.Context) { func RegisterAcmeUser(c *gin.Context) {
id := cast.ToInt(c.Param("id")) id := cast.ToUint64(c.Param("id"))
u := query.AcmeUser u := query.AcmeUser
user, err := u.FirstByID(id) user, err := u.FirstByID(id)
if err != nil { if err != nil {

View file

@ -71,7 +71,7 @@ func GetCertList(c *gin.Context) {
func GetCert(c *gin.Context) { func GetCert(c *gin.Context) {
q := query.Cert q := query.Cert
certModel, err := q.FirstByID(cast.ToInt(c.Param("id"))) certModel, err := q.FirstByID(cast.ToUint64(c.Param("id")))
if err != nil { if err != nil {
api.ErrHandler(c, err) api.ErrHandler(c, err)
@ -89,9 +89,9 @@ type certJson struct {
SSLCertificateKey string `json:"ssl_certificate_key" binding:"omitempty,privatekey"` SSLCertificateKey string `json:"ssl_certificate_key" binding:"omitempty,privatekey"`
KeyType certcrypto.KeyType `json:"key_type" binding:"omitempty,auto_cert_key_type"` KeyType certcrypto.KeyType `json:"key_type" binding:"omitempty,auto_cert_key_type"`
ChallengeMethod string `json:"challenge_method"` ChallengeMethod string `json:"challenge_method"`
DnsCredentialID int `json:"dns_credential_id"` DnsCredentialID uint64 `json:"dns_credential_id"`
ACMEUserID int `json:"acme_user_id"` ACMEUserID uint64 `json:"acme_user_id"`
SyncNodeIds []int `json:"sync_node_ids"` SyncNodeIds []uint64 `json:"sync_node_ids"`
} }
func AddCert(c *gin.Context) { func AddCert(c *gin.Context) {
@ -141,7 +141,7 @@ func AddCert(c *gin.Context) {
} }
func ModifyCert(c *gin.Context) { func ModifyCert(c *gin.Context) {
id := cast.ToInt(c.Param("id")) id := cast.ToUint64(c.Param("id"))
var json certJson var json certJson

View file

@ -12,7 +12,7 @@ import (
) )
func GetDnsCredential(c *gin.Context) { func GetDnsCredential(c *gin.Context) {
id := cast.ToInt(c.Param("id")) id := cast.ToUint64(c.Param("id"))
d := query.DnsCredential d := query.DnsCredential
@ -70,7 +70,7 @@ func AddDnsCredential(c *gin.Context) {
} }
func EditDnsCredential(c *gin.Context) { func EditDnsCredential(c *gin.Context) {
id := cast.ToInt(c.Param("id")) id := cast.ToUint64(c.Param("id"))
var json DnsCredentialManageJson var json DnsCredentialManageJson
if !api.BindAndValid(c, &json) { if !api.BindAndValid(c, &json) {

View file

@ -15,7 +15,7 @@ import (
) )
func GetEnvironment(c *gin.Context) { func GetEnvironment(c *gin.Context) {
id := cast.ToInt(c.Param("id")) id := cast.ToUint64(c.Param("id"))
envQuery := query.Environment envQuery := query.Environment
@ -67,7 +67,7 @@ func EditEnvironment(c *gin.Context) {
} }
func DeleteEnvironment(c *gin.Context) { func DeleteEnvironment(c *gin.Context) {
id := cast.ToInt(c.Param("id")) id := cast.ToUint64(c.Param("id"))
envQuery := query.Environment envQuery := query.Environment
env, err := envQuery.FirstByID(id) env, err := envQuery.FirstByID(id)

View file

@ -6,7 +6,7 @@ func InitRouter(r *gin.RouterGroup) {
// Environment // Environment
r.GET("environments", GetEnvironmentList) r.GET("environments", GetEnvironmentList)
r.POST("environments/load_from_settings", LoadEnvironmentFromSettings) r.POST("environments/load_from_settings", LoadEnvironmentFromSettings)
envGroup := r.Group("environment") envGroup := r.Group("environments")
{ {
envGroup.GET("/:id", GetEnvironment) envGroup.GET("/:id", GetEnvironment)
envGroup.POST("", AddEnvironment) envGroup.POST("", AddEnvironment)

View file

@ -17,11 +17,11 @@ import (
func AddConfig(c *gin.Context) { func AddConfig(c *gin.Context) {
var json struct { var json struct {
Name string `json:"name" binding:"required"` Name string `json:"name" binding:"required"`
NewFilepath string `json:"new_filepath" binding:"required"` NewFilepath string `json:"new_filepath" binding:"required"`
Content string `json:"content"` Content string `json:"content"`
Overwrite bool `json:"overwrite"` Overwrite bool `json:"overwrite"`
SyncNodeIds []int `json:"sync_node_ids"` SyncNodeIds []uint64 `json:"sync_node_ids"`
} }
if !api.BindAndValid(c, &json) { if !api.BindAndValid(c, &json) {

View file

@ -14,8 +14,8 @@ import (
type APIConfigResp struct { type APIConfigResp struct {
config.Config config.Config
SyncNodeIds []int `json:"sync_node_ids" gorm:"serializer:json"` SyncNodeIds []uint64 `json:"sync_node_ids" gorm:"serializer:json"`
SyncOverwrite bool `json:"sync_overwrite"` SyncOverwrite bool `json:"sync_overwrite"`
} }
func GetConfig(c *gin.Context) { func GetConfig(c *gin.Context) {

View file

@ -21,12 +21,12 @@ type EditConfigJson struct {
func EditConfig(c *gin.Context) { func EditConfig(c *gin.Context) {
name := c.Param("name") name := c.Param("name")
var json struct { var json struct {
Name string `json:"name" binding:"required"` Name string `json:"name" binding:"required"`
Filepath string `json:"filepath" binding:"required"` Filepath string `json:"filepath" binding:"required"`
NewFilepath string `json:"new_filepath" binding:"required"` NewFilepath string `json:"new_filepath" binding:"required"`
Content string `json:"content"` Content string `json:"content"`
SyncOverwrite bool `json:"sync_overwrite"` SyncOverwrite bool `json:"sync_overwrite"`
SyncNodeIds []int `json:"sync_node_ids"` SyncNodeIds []uint64 `json:"sync_node_ids"`
} }
if !api.BindAndValid(c, &json) { if !api.BindAndValid(c, &json) {
return return

View file

@ -14,10 +14,10 @@ import (
func Rename(c *gin.Context) { func Rename(c *gin.Context) {
var json struct { var json struct {
BasePath string `json:"base_path"` BasePath string `json:"base_path"`
OrigName string `json:"orig_name"` OrigName string `json:"orig_name"`
NewName string `json:"new_name"` NewName string `json:"new_name"`
SyncNodeIds []int `json:"sync_node_ids" gorm:"serializer:json"` SyncNodeIds []uint64 `json:"sync_node_ids" gorm:"serializer:json"`
} }
if !api.BindAndValid(c, &json) { if !api.BindAndValid(c, &json) {
return return

View file

@ -9,9 +9,9 @@ func InitRouter(r *gin.RouterGroup) {
r.GET("config_base_path", GetBasePath) r.GET("config_base_path", GetBasePath)
r.GET("configs", GetConfigs) r.GET("configs", GetConfigs)
r.GET("config/*name", GetConfig) r.GET("configs/*name", GetConfig)
r.POST("config", AddConfig) r.POST("configs", AddConfig)
r.POST("config/*name", EditConfig) r.POST("configs/*name", EditConfig)
o := r.Group("", middleware.RequireSecureSession()) o := r.Group("", middleware.RequireSecureSession())
{ {

View file

@ -13,7 +13,7 @@ import (
func Get(c *gin.Context) { func Get(c *gin.Context) {
n := query.Notification n := query.Notification
id := cast.ToInt(c.Param("id")) id := cast.ToUint64(c.Param("id"))
data, err := n.FirstByID(id) data, err := n.FirstByID(id)

View file

@ -4,7 +4,7 @@ import "github.com/gin-gonic/gin"
func InitRouter(r *gin.RouterGroup) { func InitRouter(r *gin.RouterGroup) {
r.GET("notifications", GetList) r.GET("notifications", GetList)
r.GET("notification/:id", Get) r.GET("notifications/:id", Get)
r.DELETE("notification/:id", Destroy) r.DELETE("notifications/:id", Destroy)
r.DELETE("notifications", DestroyAll) r.DELETE("notifications", DestroyAll)
} }

View file

@ -13,7 +13,7 @@ func AddDomainToAutoCert(c *gin.Context) {
name := c.Param("name") name := c.Param("name")
var json struct { var json struct {
DnsCredentialID int `json:"dns_credential_id"` DnsCredentialID uint64 `json:"dns_credential_id"`
ChallengeMethod string `json:"challenge_method"` ChallengeMethod string `json:"challenge_method"`
Domains []string `json:"domains"` Domains []string `json:"domains"`
KeyType certcrypto.KeyType `json:"key_type"` KeyType certcrypto.KeyType `json:"key_type"`

View file

@ -7,7 +7,7 @@ import (
) )
func GetCategory(c *gin.Context) { func GetCategory(c *gin.Context) {
cosy.Core[model.SiteCategory](c).Get()
} }
func GetCategoryList(c *gin.Context) { func GetCategoryList(c *gin.Context) {

View file

@ -4,22 +4,22 @@ import "github.com/gin-gonic/gin"
func InitRouter(r *gin.RouterGroup) { func InitRouter(r *gin.RouterGroup) {
r.GET("domains", GetSiteList) r.GET("domains", GetSiteList)
r.GET("domain/:name", GetSite) r.GET("domains/:name", GetSite)
r.POST("domain/:name", SaveSite) r.POST("domains/:name", SaveSite)
r.POST("domain/:name/enable", EnableSite) r.POST("domains/:name/enable", EnableSite)
r.POST("domain/:name/disable", DisableSite) r.POST("domains/:name/disable", DisableSite)
r.POST("domain/:name/advance", DomainEditByAdvancedMode) r.POST("domains/:name/advance", DomainEditByAdvancedMode)
r.DELETE("domain/:name", DeleteSite) r.DELETE("domains/:name", DeleteSite)
r.POST("domain/:name/duplicate", DuplicateSite) r.POST("domains/:name/duplicate", DuplicateSite)
r.POST("auto_cert/:name", AddDomainToAutoCert) r.POST("auto_cert/:name", AddDomainToAutoCert)
r.DELETE("auto_cert/:name", RemoveDomainFromAutoCert) r.DELETE("auto_cert/:name", RemoveDomainFromAutoCert)
} }
func InitCategoryRouter(r *gin.RouterGroup) { func InitCategoryRouter(r *gin.RouterGroup) {
r.GET("site_categories", GetCategoryList) r.GET("site_categories", GetCategoryList)
r.GET("site_category/:id", GetCategory) r.GET("site_categories/:id", GetCategory)
r.POST("site_category", AddCategory) r.POST("site_categories", AddCategory)
r.PUT("site_category/:id", ModifyCategory) r.POST("site_categories/:id", ModifyCategory)
r.DELETE("site_category/:id", DeleteCategory) r.DELETE("site_categories/:id", DeleteCategory)
r.POST("site_category/:id/recover", RecoverCategory) r.POST("site_categories/:id/recover", RecoverCategory)
} }

View file

@ -4,11 +4,11 @@ import "github.com/gin-gonic/gin"
func InitRouter(r *gin.RouterGroup) { func InitRouter(r *gin.RouterGroup) {
r.GET("streams", GetStreams) r.GET("streams", GetStreams)
r.GET("stream/:name", GetStream) r.GET("streams/:name", GetStream)
r.POST("stream/:name", SaveStream) r.POST("streams/:name", SaveStream)
r.POST("stream/:name/enable", EnableStream) r.POST("streams/:name/enable", EnableStream)
r.POST("stream/:name/disable", DisableStream) r.POST("streams/:name/disable", DisableStream)
r.POST("stream/:name/advance", AdvancedEdit) r.POST("streams/:name/advance", AdvancedEdit)
r.DELETE("stream/:name", DeleteStream) r.DELETE("streams/:name", DeleteStream)
r.POST("stream/:name/duplicate", Duplicate) r.POST("streams/:name/duplicate", Duplicate)
} }

View file

@ -3,9 +3,9 @@ package template
import "github.com/gin-gonic/gin" import "github.com/gin-gonic/gin"
func InitRouter(r *gin.RouterGroup) { func InitRouter(r *gin.RouterGroup) {
r.GET("template", GetTemplate) r.GET("templates", GetTemplate)
r.GET("template/configs", GetTemplateConfList) r.GET("templates/configs", GetTemplateConfList)
r.GET("template/blocks", GetTemplateBlockList) r.GET("templates/blocks", GetTemplateBlockList)
r.GET("template/block/:name", GetTemplateBlock) r.GET("templates/block/:name", GetTemplateBlock)
r.POST("template/block/:name", GetTemplateBlock) r.POST("templates/block/:name", GetTemplateBlock)
} }

View file

@ -23,7 +23,7 @@ import (
const passkeyTimeout = 30 * time.Second const passkeyTimeout = 30 * time.Second
func buildCachePasskeyRegKey(id int) string { func buildCachePasskeyRegKey(id uint64) string {
return fmt.Sprintf("passkey-reg-%d", id) return fmt.Sprintf("passkey-reg-%d", id)
} }
@ -130,7 +130,7 @@ func FinishPasskeyLogin(c *gin.Context) {
LastUsedAt: time.Now().Unix(), LastUsedAt: time.Now().Unix(),
}) })
outUser, err = u.FirstByID(cast.ToInt(string(userHandle))) outUser, err = u.FirstByID(cast.ToUint64(string(userHandle)))
return outUser, err return outUser, err
}, *sessionData, c.Request) }, *sessionData, c.Request)
if err != nil { if err != nil {

View file

@ -19,11 +19,11 @@ func InitAuthRouter(r *gin.RouterGroup) {
func InitManageUserRouter(r *gin.RouterGroup) { func InitManageUserRouter(r *gin.RouterGroup) {
r.GET("users", GetUsers) r.GET("users", GetUsers)
r.GET("user/:id", GetUser) r.GET("users/:id", GetUser)
r.POST("user", AddUser) r.POST("users", AddUser)
r.POST("user/:id", EditUser) r.POST("users/:id", EditUser)
r.DELETE("user/:id", DeleteUser) r.DELETE("users/:id", DeleteUser)
r.PATCH("user/:id", RecoverUser) r.PATCH("users/:id", RecoverUser)
} }
func InitUserRouter(r *gin.RouterGroup) { func InitUserRouter(r *gin.RouterGroup) {

View file

@ -17,7 +17,7 @@ func GetUsers(c *gin.Context) {
} }
func GetUser(c *gin.Context) { func GetUser(c *gin.Context) {
id := cast.ToInt(c.Param("id")) id := cast.ToUint64(c.Param("id"))
u := query.User u := query.User
@ -69,7 +69,7 @@ func AddUser(c *gin.Context) {
} }
func EditUser(c *gin.Context) { func EditUser(c *gin.Context) {
userId := cast.ToInt(c.Param("id")) userId := cast.ToUint64(c.Param("id"))
if settings.NodeSettings.Demo && userId == 1 { if settings.NodeSettings.Demo && userId == 1 {
c.JSON(http.StatusNotAcceptable, gin.H{ c.JSON(http.StatusNotAcceptable, gin.H{

View file

@ -11,7 +11,7 @@ export interface AcmeUser extends ModelBase {
class ACMEUserCurd extends Curd<AcmeUser> { class ACMEUserCurd extends Curd<AcmeUser> {
constructor() { constructor() {
super('acme_user', 'acme_users') super('acme_users')
} }
public async register(id: number) { public async register(id: number) {

View file

@ -37,6 +37,6 @@ export interface CertificateResult {
key_type: PrivateKeyType key_type: PrivateKeyType
} }
const cert: Curd<Cert> = new Curd('/cert') const cert: Curd<Cert> = new Curd('/certs')
export default cert export default cert

View file

@ -14,7 +14,7 @@ export interface Config {
class ConfigCurd extends Curd<Config> { class ConfigCurd extends Curd<Config> {
constructor() { constructor() {
super('/config') super('/configs')
} }
get_base_path() { get_base_path() {

View file

@ -15,28 +15,31 @@ export interface Pagination {
export interface GetListResponse<T> { export interface GetListResponse<T> {
data: T[] data: T[]
pagination: Pagination pagination?: Pagination
} }
class Curd<T> { class Curd<T> {
protected readonly baseUrl: string protected readonly baseUrl: string
protected readonly plural: string
get_list = this._get_list.bind(this) get_list = this._get_list.bind(this)
get = this._get.bind(this) get = this._get.bind(this)
save = this._save.bind(this) save = this._save.bind(this)
import = this._import.bind(this)
import_check = this._import_check.bind(this)
destroy = this._destroy.bind(this) destroy = this._destroy.bind(this)
recover = this._recover.bind(this) recover = this._recover.bind(this)
update_order = this._update_order.bind(this) update_order = this._update_order.bind(this)
batch_save = this._batch_save.bind(this)
batch_destroy = this._batch_destroy.bind(this)
batch_recover = this._batch_recover.bind(this)
constructor(baseUrl: string, plural: string | null = null) { constructor(baseUrl: string) {
this.baseUrl = baseUrl this.baseUrl = baseUrl
this.plural = plural ?? `${this.baseUrl}s`
} }
// eslint-disable-next-line ts/no-explicit-any // eslint-disable-next-line ts/no-explicit-any
_get_list(params: any = null): Promise<GetListResponse<T>> { _get_list(params: any = null): Promise<GetListResponse<T>> {
return http.get(this.plural, { params }) return http.get(this.baseUrl, { params })
} }
// eslint-disable-next-line ts/no-explicit-any // eslint-disable-next-line ts/no-explicit-any
@ -45,10 +48,25 @@ class Curd<T> {
} }
// eslint-disable-next-line ts/no-explicit-any // eslint-disable-next-line ts/no-explicit-any
_save(id: any = null, data: any = undefined, config: any = undefined): Promise<T> { _save(id: any = null, data: any = {}, config: any = undefined): Promise<T> {
return http.post(this.baseUrl + (id ? `/${id}` : ''), data, config) return http.post(this.baseUrl + (id ? `/${id}` : ''), data, config)
} }
// eslint-disable-next-line ts/no-explicit-any
_import_check(formData: FormData, config: any = {}): Promise<T> {
return http.post(`${this.baseUrl}/import_check`, formData, {
headers: {
'Content-Type': 'multipart/form-data;charset=UTF-8',
},
...config,
})
}
// eslint-disable-next-line ts/no-explicit-any
_import(data: any, config: any = {}): Promise<T> {
return http.post(`${this.baseUrl}/import`, data, config)
}
// eslint-disable-next-line ts/no-explicit-any // eslint-disable-next-line ts/no-explicit-any
_destroy(id: any = null, params: any = {}) { _destroy(id: any = null, params: any = {}) {
return http.delete(`${this.baseUrl}/${id}`, { params }) return http.delete(`${this.baseUrl}/${id}`, { params })
@ -59,12 +77,34 @@ class Curd<T> {
return http.patch(`${this.baseUrl}/${id}`) return http.patch(`${this.baseUrl}/${id}`)
} }
_update_order(data: { _update_order(data: { target_id: number, direction: number, affected_ids: number[] }) {
target_id: number return http.post(`${this.baseUrl}/order`, data)
direction: number }
affected_ids: number[]
}) { // eslint-disable-next-line ts/no-explicit-any
return http.post(`${this.plural}/order`, data) _batch_save(ids: any, data: any) {
return http.put(this.baseUrl, {
ids,
data,
})
}
// eslint-disable-next-line ts/no-explicit-any
_batch_destroy(ids?: (string | number)[], params: any = {}) {
return http.delete(this.baseUrl, {
params,
data: {
ids,
},
})
}
_batch_recover(ids?: (string | number)[]) {
return http.patch(this.baseUrl, {
data: {
ids,
},
})
} }
} }

View file

@ -17,6 +17,6 @@ export interface DnsCredential extends ModelBase {
} }
} }
const dns_credential: Curd<DnsCredential> = new Curd('/dns_credential') const dns_credential: Curd<DnsCredential> = new Curd('/dns_credentials')
export default dns_credential export default dns_credential

View file

@ -56,6 +56,6 @@ class Domain extends Curd<Site> {
} }
} }
const domain = new Domain('/domain') const domain = new Domain('/domains')
export default domain export default domain

View file

@ -18,11 +18,11 @@ export interface Node {
class EnvironmentCurd extends Curd<Environment> { class EnvironmentCurd extends Curd<Environment> {
constructor() { constructor() {
super('/environment') super('/environments')
} }
load_from_settings() { load_from_settings() {
return http.post(`${this.plural}/load_from_settings`) return http.post(`${this.baseUrl}/load_from_settings`)
} }
} }

View file

@ -10,10 +10,10 @@ export interface Notification extends ModelBase {
class NotificationCurd extends Curd<Notification> { class NotificationCurd extends Curd<Notification> {
public clear() { public clear() {
return http.delete(this.plural) return http.delete(this.baseUrl)
} }
} }
const notification = new NotificationCurd('/notification') const notification = new NotificationCurd('/notifications')
export default notification export default notification

View file

@ -0,0 +1,11 @@
import type { ModelBase } from '@/api/curd'
import Curd from '@/api/curd'
export interface SiteCategory extends ModelBase {
name: string
sync_node_ids: number[]
}
const site_category = new Curd<SiteCategory>('site_categories')
export default site_category

View file

@ -33,6 +33,6 @@ class StreamCurd extends Curd<Stream> {
} }
} }
const stream = new StreamCurd('/stream') const stream = new StreamCurd('/streams')
export default stream export default stream

View file

@ -23,26 +23,26 @@ export interface Template extends NgxServer {
class TemplateApi extends Curd<Template> { class TemplateApi extends Curd<Template> {
get_config_list() { get_config_list() {
return http.get('template/configs') return http.get('templates/configs')
} }
get_block_list() { get_block_list() {
return http.get('template/blocks') return http.get('templates/blocks')
} }
get_config(name: string) { get_config(name: string) {
return http.get(`template/config/${name}`) return http.get(`templates/config/${name}`)
} }
get_block(name: string) { get_block(name: string) {
return http.get(`template/block/${name}`) return http.get(`templates/block/${name}`)
} }
build_block(name: string, data: Variable) { build_block(name: string, data: Variable) {
return http.post(`template/block/${name}`, data) return http.post(`templates/block/${name}`, data)
} }
} }
const template = new TemplateApi('/template') const template = new TemplateApi('/templates')
export default template export default template

View file

@ -6,6 +6,6 @@ export interface User extends ModelBase {
password: string password: string
} }
const user: Curd<User> = new Curd('user') const user: Curd<User> = new Curd('users')
export default user export default user

View file

@ -22,7 +22,7 @@ onMounted(async () => {
r.data?.forEach(node => { r.data?.forEach(node => {
data_map.value[node.id] = node data_map.value[node.id] = node
}) })
hasMore = r.data.length === r.pagination.per_page hasMore = r.data.length === r.pagination?.per_page
page++ page++
}).catch(() => { }).catch(() => {
hasMore = false hasMore = false
@ -35,7 +35,6 @@ const value = computed({
return target.value return target.value
}, },
set(v: number[]) { set(v: number[]) {
console.log(v)
if (typeof map.value === 'object') { if (typeof map.value === 'object') {
const _map = {} const _map = {}
@ -70,7 +69,7 @@ const noData = computed(() => {
<ACheckbox :value="0"> <ACheckbox :value="0">
{{ $gettext('Local') }} {{ $gettext('Local') }}
</ACheckbox> </ACheckbox>
<ATag color="blue"> <ATag color="green">
{{ $gettext('Online') }} {{ $gettext('Online') }}
</ATag> </ATag>
</ACol> </ACol>
@ -83,7 +82,7 @@ const noData = computed(() => {
</ACheckbox> </ACheckbox>
<ATag <ATag
v-if="node.status" v-if="node.status"
color="blue" color="green"
> >
{{ $gettext('Online') }} {{ $gettext('Online') }}
</ATag> </ATag>

View file

@ -18,7 +18,7 @@ function init() {
loading.value = true loading.value = true
notification.get_list().then(r => { notification.get_list().then(r => {
data.value = r.data data.value = r.data
unreadCount.value = r.pagination.total unreadCount.value = r.pagination?.total || 0
}).catch(e => { }).catch(e => {
message.error($gettext(e?.message ?? 'Server error')) message.error($gettext(e?.message ?? 'Server error'))
}).finally(() => { }).finally(() => {

View file

@ -1,5 +1,6 @@
import type { GetListResponse } from '@/api/curd'
import type { StdTableProps } from '@/components/StdDesign/StdDataDisplay/StdTable.vue' import type { StdTableProps } from '@/components/StdDesign/StdDataDisplay/StdTable.vue'
import type { Column, StdTableResponse } from '@/components/StdDesign/types' import type { Column } from '@/components/StdDesign/types'
import type { ComputedRef } from 'vue' import type { ComputedRef } from 'vue'
import { downloadCsv } from '@/lib/helper' import { downloadCsv } from '@/lib/helper'
import { message } from 'ant-design-vue' import { message } from 'ant-design-vue'
@ -33,7 +34,8 @@ async function exportCsv(props: StdTableProps, pithyColumns: ComputedRef<Column[
while (hasMore) { while (hasMore) {
// 准备 DataSource // 准备 DataSource
await props await props
.api!.get_list({ page }).then((r: StdTableResponse) => { // eslint-disable-next-line ts/no-explicit-any
.api!.get_list({ page }).then((r: GetListResponse<any>) => {
if (r.data.length === 0) { if (r.data.length === 0) {
hasMore = false hasMore = false

View file

@ -1,4 +1,3 @@
import type { Pagination } from '@/api/curd'
import type Curd from '@/api/curd' import type Curd from '@/api/curd'
import type { TableColumnType } from 'ant-design-vue' import type { TableColumnType } from 'ant-design-vue'
import type { Ref } from 'vue' import type { Ref } from 'vue'
@ -104,8 +103,3 @@ export interface Column extends TableColumnType {
dataSourceValueIndex?: any // relative to dataSource dataSourceValueIndex?: any // relative to dataSource
} }
} }
export interface StdTableResponse {
data: any[]
pagination: Pagination
}

View file

@ -64,6 +64,13 @@ export const routes: RouteRecordRaw[] = [
name: () => $gettext('Add Site'), name: () => $gettext('Add Site'),
lastRouteName: 'Sites List', lastRouteName: 'Sites List',
}, },
}, {
path: 'categories',
name: 'Site Categories',
component: () => import('@/views/site/site_category/SiteCategory.vue'),
meta: {
name: () => $gettext('Site Categories'),
},
}, { }, {
path: ':name', path: ':name',
name: 'Edit Site', name: 'Edit Site',

View file

@ -47,7 +47,7 @@ onMounted(async () => {
const r = await acme_user.get_list({ page }) const r = await acme_user.get_list({ page })
users.value.push(...r.data) users.value.push(...r.data)
if (r?.data?.length < r?.pagination?.per_page) if (r?.data?.length < (r?.pagination?.per_page ?? 0))
break break
page++ page++
} }

View file

@ -32,7 +32,7 @@ onMounted(async () => {
while (hasMore) { while (hasMore) {
await environment.get_list({ page, enabled: true }).then(r => { await environment.get_list({ page, enabled: true }).then(r => {
data.value.push(...r.data) data.value.push(...r.data)
hasMore = r.data.length === r.pagination.per_page hasMore = r.data.length === r.pagination?.per_page
page++ page++
}).catch(() => { }).catch(() => {
hasMore = false hasMore = false

View file

@ -0,0 +1,28 @@
<script setup lang="ts">
import site_category from '@/api/site_category'
import NodeSelector from '@/components/NodeSelector/NodeSelector.vue'
import { StdCurd } from '@/components/StdDesign/StdDataDisplay'
import columns from '@/views/site/site_category/columns'
</script>
<template>
<StdCurd
:title="$gettext('Site Categories')"
:api="site_category"
:columns="columns"
>
<template #edit="{ data }">
<div class="mb-2">
{{ $gettext('Sync Nodes') }}
</div>
<NodeSelector
v-model:target="data.sync_node_ids"
hidden-local
/>
</template>
</StdCurd>
</template>
<style scoped lang="less">
</style>

View file

@ -0,0 +1,30 @@
import type { Column } from '@/components/StdDesign/types'
import { datetime } from '@/components/StdDesign/StdDataDisplay/StdTableTransformer'
import { input } from '@/components/StdDesign/StdDataEntry'
const columns: Column[] = [{
dataIndex: 'name',
title: () => $gettext('Name'),
search: true,
edit: {
type: input,
},
pithy: true,
}, {
title: () => $gettext('Created at'),
dataIndex: 'created_at',
customRender: datetime,
sorter: true,
pithy: true,
}, {
title: () => $gettext('Updated at'),
dataIndex: 'updated_at',
customRender: datetime,
sorter: true,
pithy: true,
}, {
title: () => $gettext('Action'),
dataIndex: 'action',
}]
export default columns

2
go.sum
View file

@ -812,8 +812,6 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/dgraph-io/ristretto v0.2.0 h1:XAfl+7cmoUDWW/2Lx8TGZQjjxIQ2Ley9DSf52dru4WE=
github.com/dgraph-io/ristretto v0.2.0/go.mod h1:8uBHCU/PBV4Ag0CJrP47b9Ofby5dqWNh4FicAdoqFNU=
github.com/dgraph-io/ristretto/v2 v2.0.0-alpha h1:JBy5Mm/z1HBj3hyDLFBS2uHalL971q3yjUaKcia0Sgo= github.com/dgraph-io/ristretto/v2 v2.0.0-alpha h1:JBy5Mm/z1HBj3hyDLFBS2uHalL971q3yjUaKcia0Sgo=
github.com/dgraph-io/ristretto/v2 v2.0.0-alpha/go.mod h1:7bFGBdXzLfFFjKCN8YDQ7+98m/AEYcrdqH7s0En96Qg= github.com/dgraph-io/ristretto/v2 v2.0.0-alpha/go.mod h1:7bFGBdXzLfFFjKCN8YDQ7+98m/AEYcrdqH7s0En96Qg=
github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=

View file

@ -42,7 +42,7 @@ type Node struct {
var mutex sync.Mutex var mutex sync.Mutex
type TNodeMap map[int]*Node type TNodeMap map[uint64]*Node
var NodeMap TNodeMap var NodeMap TNodeMap

View file

@ -16,11 +16,11 @@ import (
) )
type ConfigPayload struct { type ConfigPayload struct {
CertID int `json:"cert_id"` CertID uint64 `json:"cert_id"`
ServerName []string `json:"server_name"` ServerName []string `json:"server_name"`
ChallengeMethod string `json:"challenge_method"` ChallengeMethod string `json:"challenge_method"`
DNSCredentialID int `json:"dns_credential_id"` DNSCredentialID uint64 `json:"dns_credential_id"`
ACMEUserID int `json:"acme_user_id"` ACMEUserID uint64 `json:"acme_user_id"`
KeyType certcrypto.KeyType `json:"key_type"` KeyType certcrypto.KeyType `json:"key_type"`
Resource *model.CertificateResource `json:"resource,omitempty"` Resource *model.CertificateResource `json:"resource,omitempty"`
MustStaple bool `json:"must_staple"` MustStaple bool `json:"must_staple"`

View file

@ -80,7 +80,7 @@ func SyncToRemoteServer(c *model.Config, newFilepath string) (err error) {
return return
} }
func SyncRenameOnRemoteServer(origPath, newPath string, syncNodeIds []int) (err error) { func SyncRenameOnRemoteServer(origPath, newPath string, syncNodeIds []uint64) (err error) {
if origPath == "" || newPath == "" || len(syncNodeIds) == 0 { if origPath == "" || newPath == "" || len(syncNodeIds) == 0 {
return return
} }

View file

@ -18,7 +18,7 @@ func Proxy() gin.HandlerFunc {
c.Next() c.Next()
return return
} }
id := cast.ToInt(nodeID) id := cast.ToUint64(nodeID)
if id == 0 { if id == 0 {
c.Next() c.Next()
return return

View file

@ -16,7 +16,7 @@ func ProxyWs() gin.HandlerFunc {
c.Next() c.Next()
return return
} }
id := cast.ToInt(nodeID) id := cast.ToUint64(nodeID)
if id == 0 { if id == 0 {
c.Next() c.Next()
return return

View file

@ -46,16 +46,16 @@ func secureSessionIDCacheKey(sessionId string) string {
return fmt.Sprintf("2fa_secure_session:_%s", sessionId) return fmt.Sprintf("2fa_secure_session:_%s", sessionId)
} }
func SetSecureSessionID(userId int) (sessionId string) { func SetSecureSessionID(userId uint64) (sessionId string) {
sessionId = uuid.NewString() sessionId = uuid.NewString()
cache.Set(secureSessionIDCacheKey(sessionId), userId, 5*time.Minute) cache.Set(secureSessionIDCacheKey(sessionId), userId, 5*time.Minute)
return return
} }
func VerifySecureSessionID(sessionId string, userId int) bool { func VerifySecureSessionID(sessionId string, userId uint64) bool {
if v, ok := cache.Get(secureSessionIDCacheKey(sessionId)); ok { if v, ok := cache.Get(secureSessionIDCacheKey(sessionId)); ok {
if v.(int) == userId { if v.(uint64) == userId {
return true return true
} }
} }

View file

@ -15,7 +15,7 @@ const ExpiredTime = 24 * time.Hour
type JWTClaims struct { type JWTClaims struct {
Name string `json:"name"` Name string `json:"name"`
UserID int `json:"user_id"` UserID uint64 `json:"user_id"`
jwt.RegisteredClaims jwt.RegisteredClaims
} }

View file

@ -37,14 +37,14 @@ type Cert struct {
SSLCertificateKeyPath string `json:"ssl_certificate_key_path"` SSLCertificateKeyPath string `json:"ssl_certificate_key_path"`
AutoCert int `json:"auto_cert"` AutoCert int `json:"auto_cert"`
ChallengeMethod string `json:"challenge_method"` ChallengeMethod string `json:"challenge_method"`
DnsCredentialID int `json:"dns_credential_id"` DnsCredentialID uint64 `json:"dns_credential_id"`
DnsCredential *DnsCredential `json:"dns_credential,omitempty"` DnsCredential *DnsCredential `json:"dns_credential,omitempty"`
ACMEUserID int `json:"acme_user_id"` ACMEUserID uint64 `json:"acme_user_id"`
ACMEUser *AcmeUser `json:"acme_user,omitempty"` ACMEUser *AcmeUser `json:"acme_user,omitempty"`
KeyType certcrypto.KeyType `json:"key_type"` KeyType certcrypto.KeyType `json:"key_type"`
Log string `json:"log"` Log string `json:"log"`
Resource *CertificateResource `json:"-" gorm:"serializer:json"` Resource *CertificateResource `json:"-" gorm:"serializer:json"`
SyncNodeIds []int `json:"sync_node_ids" gorm:"serializer:json"` SyncNodeIds []uint64 `json:"sync_node_ids" gorm:"serializer:json"`
MustStaple bool `json:"must_staple"` MustStaple bool `json:"must_staple"`
LegoDisableCNAMESupport bool `json:"lego_disable_cname_support"` LegoDisableCNAMESupport bool `json:"lego_disable_cname_support"`
} }

View file

@ -2,8 +2,8 @@ package model
type Config struct { type Config struct {
Model Model
Name string `json:"name"` Name string `json:"name"`
Filepath string `json:"filepath"` Filepath string `json:"filepath"`
SyncNodeIds []int `json:"sync_node_ids" gorm:"serializer:json"` SyncNodeIds []uint64 `json:"sync_node_ids" gorm:"serializer:json"`
SyncOverwrite bool `json:"sync_overwrite"` SyncOverwrite bool `json:"sync_overwrite"`
} }

View file

@ -7,12 +7,10 @@ import (
type Environment struct { type Environment struct {
Model Model
Name string `json:"name"` Name string `json:"name"`
URL string `json:"url"` URL string `json:"url"`
Token string `json:"token"` Token string `json:"token"`
Enabled bool `json:"enabled" gorm:"default:true"` Enabled bool `json:"enabled" gorm:"default:true"`
OperationSync bool `json:"operation_sync"`
SyncApiRegex string `json:"sync_api_regex"`
} }
func (e *Environment) GetUrl(uri string) (decodedUri string, err error) { func (e *Environment) GetUrl(uri string) (decodedUri string, err error) {

View file

@ -9,7 +9,7 @@ import (
var db *gorm.DB var db *gorm.DB
type Model struct { type Model struct {
ID int `gorm:"primary_key" json:"id"` ID uint64 `gorm:"primary_key" json:"id"`
CreatedAt time.Time `json:"created_at"` CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"` UpdatedAt time.Time `json:"updated_at"`
DeletedAt *gorm.DeletedAt `gorm:"index" json:"deleted_at"` DeletedAt *gorm.DeletedAt `gorm:"index" json:"deleted_at"`
@ -57,7 +57,7 @@ type DataList struct {
type Method interface { type Method interface {
// FirstByID Where("id=@id") // FirstByID Where("id=@id")
FirstByID(id int) (*gen.T, error) FirstByID(id uint64) (*gen.T, error)
// DeleteByID update @@table set deleted_at=strftime('%Y-%m-%d %H:%M:%S','now') where id=@id // DeleteByID update @@table set deleted_at=strftime('%Y-%m-%d %H:%M:%S','now') where id=@id
DeleteByID(id int) error DeleteByID(id uint64) error
} }

View file

@ -6,7 +6,7 @@ type Passkey struct {
Model Model
Name string `json:"name"` Name string `json:"name"`
UserID int `json:"user_id"` UserID uint64 `json:"user_id"`
RawID string `json:"raw_id"` RawID string `json:"raw_id"`
Credential *webauthn.Credential `json:"-" gorm:"serializer:json"` Credential *webauthn.Credential `json:"-" gorm:"serializer:json"`
LastUsedAt int64 `json:"last_used_at" gorm:"default:0"` LastUsedAt int64 `json:"last_used_at" gorm:"default:0"`

View file

@ -17,7 +17,7 @@ type User struct {
} }
type AuthToken struct { type AuthToken struct {
UserID int `json:"user_id"` UserID uint64 `json:"user_id"`
Token string `json:"token"` Token string `json:"token"`
ExpiredAt int64 `json:"expired_at" gorm:"default:0"` ExpiredAt int64 `json:"expired_at" gorm:"default:0"`
} }

View file

@ -28,7 +28,7 @@ func newAcmeUser(db *gorm.DB, opts ...gen.DOOption) acmeUser {
tableName := _acmeUser.acmeUserDo.TableName() tableName := _acmeUser.acmeUserDo.TableName()
_acmeUser.ALL = field.NewAsterisk(tableName) _acmeUser.ALL = field.NewAsterisk(tableName)
_acmeUser.ID = field.NewInt(tableName, "id") _acmeUser.ID = field.NewUint64(tableName, "id")
_acmeUser.CreatedAt = field.NewTime(tableName, "created_at") _acmeUser.CreatedAt = field.NewTime(tableName, "created_at")
_acmeUser.UpdatedAt = field.NewTime(tableName, "updated_at") _acmeUser.UpdatedAt = field.NewTime(tableName, "updated_at")
_acmeUser.DeletedAt = field.NewField(tableName, "deleted_at") _acmeUser.DeletedAt = field.NewField(tableName, "deleted_at")
@ -49,7 +49,7 @@ type acmeUser struct {
acmeUserDo acmeUserDo
ALL field.Asterisk ALL field.Asterisk
ID field.Int ID field.Uint64
CreatedAt field.Time CreatedAt field.Time
UpdatedAt field.Time UpdatedAt field.Time
DeletedAt field.Field DeletedAt field.Field
@ -76,7 +76,7 @@ func (a acmeUser) As(alias string) *acmeUser {
func (a *acmeUser) updateTableName(table string) *acmeUser { func (a *acmeUser) updateTableName(table string) *acmeUser {
a.ALL = field.NewAsterisk(table) a.ALL = field.NewAsterisk(table)
a.ID = field.NewInt(table, "id") a.ID = field.NewUint64(table, "id")
a.CreatedAt = field.NewTime(table, "created_at") a.CreatedAt = field.NewTime(table, "created_at")
a.UpdatedAt = field.NewTime(table, "updated_at") a.UpdatedAt = field.NewTime(table, "updated_at")
a.DeletedAt = field.NewField(table, "deleted_at") a.DeletedAt = field.NewField(table, "deleted_at")
@ -130,7 +130,7 @@ func (a acmeUser) replaceDB(db *gorm.DB) acmeUser {
type acmeUserDo struct{ gen.DO } type acmeUserDo struct{ gen.DO }
// FirstByID Where("id=@id") // FirstByID Where("id=@id")
func (a acmeUserDo) FirstByID(id int) (result *model.AcmeUser, err error) { func (a acmeUserDo) FirstByID(id uint64) (result *model.AcmeUser, err error) {
var params []interface{} var params []interface{}
var generateSQL strings.Builder var generateSQL strings.Builder
@ -145,7 +145,7 @@ func (a acmeUserDo) FirstByID(id int) (result *model.AcmeUser, err error) {
} }
// DeleteByID update @@table set deleted_at=strftime('%Y-%m-%d %H:%M:%S','now') where id=@id // DeleteByID update @@table set deleted_at=strftime('%Y-%m-%d %H:%M:%S','now') where id=@id
func (a acmeUserDo) DeleteByID(id int) (err error) { func (a acmeUserDo) DeleteByID(id uint64) (err error) {
var params []interface{} var params []interface{}
var generateSQL strings.Builder var generateSQL strings.Builder

View file

@ -28,7 +28,7 @@ func newAuthToken(db *gorm.DB, opts ...gen.DOOption) authToken {
tableName := _authToken.authTokenDo.TableName() tableName := _authToken.authTokenDo.TableName()
_authToken.ALL = field.NewAsterisk(tableName) _authToken.ALL = field.NewAsterisk(tableName)
_authToken.UserID = field.NewInt(tableName, "user_id") _authToken.UserID = field.NewUint64(tableName, "user_id")
_authToken.Token = field.NewString(tableName, "token") _authToken.Token = field.NewString(tableName, "token")
_authToken.ExpiredAt = field.NewInt64(tableName, "expired_at") _authToken.ExpiredAt = field.NewInt64(tableName, "expired_at")
@ -41,7 +41,7 @@ type authToken struct {
authTokenDo authTokenDo
ALL field.Asterisk ALL field.Asterisk
UserID field.Int UserID field.Uint64
Token field.String Token field.String
ExpiredAt field.Int64 ExpiredAt field.Int64
@ -60,7 +60,7 @@ func (a authToken) As(alias string) *authToken {
func (a *authToken) updateTableName(table string) *authToken { func (a *authToken) updateTableName(table string) *authToken {
a.ALL = field.NewAsterisk(table) a.ALL = field.NewAsterisk(table)
a.UserID = field.NewInt(table, "user_id") a.UserID = field.NewUint64(table, "user_id")
a.Token = field.NewString(table, "token") a.Token = field.NewString(table, "token")
a.ExpiredAt = field.NewInt64(table, "expired_at") a.ExpiredAt = field.NewInt64(table, "expired_at")
@ -98,7 +98,7 @@ func (a authToken) replaceDB(db *gorm.DB) authToken {
type authTokenDo struct{ gen.DO } type authTokenDo struct{ gen.DO }
// FirstByID Where("id=@id") // FirstByID Where("id=@id")
func (a authTokenDo) FirstByID(id int) (result *model.AuthToken, err error) { func (a authTokenDo) FirstByID(id uint64) (result *model.AuthToken, err error) {
var params []interface{} var params []interface{}
var generateSQL strings.Builder var generateSQL strings.Builder
@ -113,7 +113,7 @@ func (a authTokenDo) FirstByID(id int) (result *model.AuthToken, err error) {
} }
// DeleteByID update @@table set deleted_at=strftime('%Y-%m-%d %H:%M:%S','now') where id=@id // DeleteByID update @@table set deleted_at=strftime('%Y-%m-%d %H:%M:%S','now') where id=@id
func (a authTokenDo) DeleteByID(id int) (err error) { func (a authTokenDo) DeleteByID(id uint64) (err error) {
var params []interface{} var params []interface{}
var generateSQL strings.Builder var generateSQL strings.Builder

View file

@ -28,7 +28,7 @@ func newUser(db *gorm.DB, opts ...gen.DOOption) user {
tableName := _user.userDo.TableName() tableName := _user.userDo.TableName()
_user.ALL = field.NewAsterisk(tableName) _user.ALL = field.NewAsterisk(tableName)
_user.ID = field.NewInt(tableName, "id") _user.ID = field.NewUint64(tableName, "id")
_user.CreatedAt = field.NewTime(tableName, "created_at") _user.CreatedAt = field.NewTime(tableName, "created_at")
_user.UpdatedAt = field.NewTime(tableName, "updated_at") _user.UpdatedAt = field.NewTime(tableName, "updated_at")
_user.DeletedAt = field.NewField(tableName, "deleted_at") _user.DeletedAt = field.NewField(tableName, "deleted_at")
@ -46,7 +46,7 @@ type user struct {
userDo userDo
ALL field.Asterisk ALL field.Asterisk
ID field.Int ID field.Uint64
CreatedAt field.Time CreatedAt field.Time
UpdatedAt field.Time UpdatedAt field.Time
DeletedAt field.Field DeletedAt field.Field
@ -70,7 +70,7 @@ func (u user) As(alias string) *user {
func (u *user) updateTableName(table string) *user { func (u *user) updateTableName(table string) *user {
u.ALL = field.NewAsterisk(table) u.ALL = field.NewAsterisk(table)
u.ID = field.NewInt(table, "id") u.ID = field.NewUint64(table, "id")
u.CreatedAt = field.NewTime(table, "created_at") u.CreatedAt = field.NewTime(table, "created_at")
u.UpdatedAt = field.NewTime(table, "updated_at") u.UpdatedAt = field.NewTime(table, "updated_at")
u.DeletedAt = field.NewField(table, "deleted_at") u.DeletedAt = field.NewField(table, "deleted_at")
@ -118,7 +118,7 @@ func (u user) replaceDB(db *gorm.DB) user {
type userDo struct{ gen.DO } type userDo struct{ gen.DO }
// FirstByID Where("id=@id") // FirstByID Where("id=@id")
func (u userDo) FirstByID(id int) (result *model.User, err error) { func (u userDo) FirstByID(id uint64) (result *model.User, err error) {
var params []interface{} var params []interface{}
var generateSQL strings.Builder var generateSQL strings.Builder
@ -133,7 +133,7 @@ func (u userDo) FirstByID(id int) (result *model.User, err error) {
} }
// DeleteByID update @@table set deleted_at=strftime('%Y-%m-%d %H:%M:%S','now') where id=@id // DeleteByID update @@table set deleted_at=strftime('%Y-%m-%d %H:%M:%S','now') where id=@id
func (u userDo) DeleteByID(id int) (err error) { func (u userDo) DeleteByID(id uint64) (err error) {
var params []interface{} var params []interface{}
var generateSQL strings.Builder var generateSQL strings.Builder

View file

@ -98,7 +98,7 @@ func (b banIP) replaceDB(db *gorm.DB) banIP {
type banIPDo struct{ gen.DO } type banIPDo struct{ gen.DO }
// FirstByID Where("id=@id") // FirstByID Where("id=@id")
func (b banIPDo) FirstByID(id int) (result *model.BanIP, err error) { func (b banIPDo) FirstByID(id uint64) (result *model.BanIP, err error) {
var params []interface{} var params []interface{}
var generateSQL strings.Builder var generateSQL strings.Builder
@ -113,7 +113,7 @@ func (b banIPDo) FirstByID(id int) (result *model.BanIP, err error) {
} }
// DeleteByID update @@table set deleted_at=strftime('%Y-%m-%d %H:%M:%S','now') where id=@id // DeleteByID update @@table set deleted_at=strftime('%Y-%m-%d %H:%M:%S','now') where id=@id
func (b banIPDo) DeleteByID(id int) (err error) { func (b banIPDo) DeleteByID(id uint64) (err error) {
var params []interface{} var params []interface{}
var generateSQL strings.Builder var generateSQL strings.Builder

View file

@ -28,7 +28,7 @@ func newCert(db *gorm.DB, opts ...gen.DOOption) cert {
tableName := _cert.certDo.TableName() tableName := _cert.certDo.TableName()
_cert.ALL = field.NewAsterisk(tableName) _cert.ALL = field.NewAsterisk(tableName)
_cert.ID = field.NewInt(tableName, "id") _cert.ID = field.NewUint64(tableName, "id")
_cert.CreatedAt = field.NewTime(tableName, "created_at") _cert.CreatedAt = field.NewTime(tableName, "created_at")
_cert.UpdatedAt = field.NewTime(tableName, "updated_at") _cert.UpdatedAt = field.NewTime(tableName, "updated_at")
_cert.DeletedAt = field.NewField(tableName, "deleted_at") _cert.DeletedAt = field.NewField(tableName, "deleted_at")
@ -39,8 +39,8 @@ func newCert(db *gorm.DB, opts ...gen.DOOption) cert {
_cert.SSLCertificateKeyPath = field.NewString(tableName, "ssl_certificate_key_path") _cert.SSLCertificateKeyPath = field.NewString(tableName, "ssl_certificate_key_path")
_cert.AutoCert = field.NewInt(tableName, "auto_cert") _cert.AutoCert = field.NewInt(tableName, "auto_cert")
_cert.ChallengeMethod = field.NewString(tableName, "challenge_method") _cert.ChallengeMethod = field.NewString(tableName, "challenge_method")
_cert.DnsCredentialID = field.NewInt(tableName, "dns_credential_id") _cert.DnsCredentialID = field.NewUint64(tableName, "dns_credential_id")
_cert.ACMEUserID = field.NewInt(tableName, "acme_user_id") _cert.ACMEUserID = field.NewUint64(tableName, "acme_user_id")
_cert.KeyType = field.NewString(tableName, "key_type") _cert.KeyType = field.NewString(tableName, "key_type")
_cert.Log = field.NewString(tableName, "log") _cert.Log = field.NewString(tableName, "log")
_cert.Resource = field.NewField(tableName, "resource") _cert.Resource = field.NewField(tableName, "resource")
@ -68,7 +68,7 @@ type cert struct {
certDo certDo
ALL field.Asterisk ALL field.Asterisk
ID field.Int ID field.Uint64
CreatedAt field.Time CreatedAt field.Time
UpdatedAt field.Time UpdatedAt field.Time
DeletedAt field.Field DeletedAt field.Field
@ -79,8 +79,8 @@ type cert struct {
SSLCertificateKeyPath field.String SSLCertificateKeyPath field.String
AutoCert field.Int AutoCert field.Int
ChallengeMethod field.String ChallengeMethod field.String
DnsCredentialID field.Int DnsCredentialID field.Uint64
ACMEUserID field.Int ACMEUserID field.Uint64
KeyType field.String KeyType field.String
Log field.String Log field.String
Resource field.Field Resource field.Field
@ -106,7 +106,7 @@ func (c cert) As(alias string) *cert {
func (c *cert) updateTableName(table string) *cert { func (c *cert) updateTableName(table string) *cert {
c.ALL = field.NewAsterisk(table) c.ALL = field.NewAsterisk(table)
c.ID = field.NewInt(table, "id") c.ID = field.NewUint64(table, "id")
c.CreatedAt = field.NewTime(table, "created_at") c.CreatedAt = field.NewTime(table, "created_at")
c.UpdatedAt = field.NewTime(table, "updated_at") c.UpdatedAt = field.NewTime(table, "updated_at")
c.DeletedAt = field.NewField(table, "deleted_at") c.DeletedAt = field.NewField(table, "deleted_at")
@ -117,8 +117,8 @@ func (c *cert) updateTableName(table string) *cert {
c.SSLCertificateKeyPath = field.NewString(table, "ssl_certificate_key_path") c.SSLCertificateKeyPath = field.NewString(table, "ssl_certificate_key_path")
c.AutoCert = field.NewInt(table, "auto_cert") c.AutoCert = field.NewInt(table, "auto_cert")
c.ChallengeMethod = field.NewString(table, "challenge_method") c.ChallengeMethod = field.NewString(table, "challenge_method")
c.DnsCredentialID = field.NewInt(table, "dns_credential_id") c.DnsCredentialID = field.NewUint64(table, "dns_credential_id")
c.ACMEUserID = field.NewInt(table, "acme_user_id") c.ACMEUserID = field.NewUint64(table, "acme_user_id")
c.KeyType = field.NewString(table, "key_type") c.KeyType = field.NewString(table, "key_type")
c.Log = field.NewString(table, "log") c.Log = field.NewString(table, "log")
c.Resource = field.NewField(table, "resource") c.Resource = field.NewField(table, "resource")
@ -319,7 +319,7 @@ func (a certBelongsToACMEUserTx) Count() int64 {
type certDo struct{ gen.DO } type certDo struct{ gen.DO }
// FirstByID Where("id=@id") // FirstByID Where("id=@id")
func (c certDo) FirstByID(id int) (result *model.Cert, err error) { func (c certDo) FirstByID(id uint64) (result *model.Cert, err error) {
var params []interface{} var params []interface{}
var generateSQL strings.Builder var generateSQL strings.Builder
@ -334,7 +334,7 @@ func (c certDo) FirstByID(id int) (result *model.Cert, err error) {
} }
// DeleteByID update @@table set deleted_at=strftime('%Y-%m-%d %H:%M:%S','now') where id=@id // DeleteByID update @@table set deleted_at=strftime('%Y-%m-%d %H:%M:%S','now') where id=@id
func (c certDo) DeleteByID(id int) (err error) { func (c certDo) DeleteByID(id uint64) (err error) {
var params []interface{} var params []interface{}
var generateSQL strings.Builder var generateSQL strings.Builder

View file

@ -94,7 +94,7 @@ func (c chatGPTLog) replaceDB(db *gorm.DB) chatGPTLog {
type chatGPTLogDo struct{ gen.DO } type chatGPTLogDo struct{ gen.DO }
// FirstByID Where("id=@id") // FirstByID Where("id=@id")
func (c chatGPTLogDo) FirstByID(id int) (result *model.ChatGPTLog, err error) { func (c chatGPTLogDo) FirstByID(id uint64) (result *model.ChatGPTLog, err error) {
var params []interface{} var params []interface{}
var generateSQL strings.Builder var generateSQL strings.Builder
@ -109,7 +109,7 @@ func (c chatGPTLogDo) FirstByID(id int) (result *model.ChatGPTLog, err error) {
} }
// DeleteByID update @@table set deleted_at=strftime('%Y-%m-%d %H:%M:%S','now') where id=@id // DeleteByID update @@table set deleted_at=strftime('%Y-%m-%d %H:%M:%S','now') where id=@id
func (c chatGPTLogDo) DeleteByID(id int) (err error) { func (c chatGPTLogDo) DeleteByID(id uint64) (err error) {
var params []interface{} var params []interface{}
var generateSQL strings.Builder var generateSQL strings.Builder

View file

@ -28,7 +28,7 @@ func newConfigBackup(db *gorm.DB, opts ...gen.DOOption) configBackup {
tableName := _configBackup.configBackupDo.TableName() tableName := _configBackup.configBackupDo.TableName()
_configBackup.ALL = field.NewAsterisk(tableName) _configBackup.ALL = field.NewAsterisk(tableName)
_configBackup.ID = field.NewInt(tableName, "id") _configBackup.ID = field.NewUint64(tableName, "id")
_configBackup.CreatedAt = field.NewTime(tableName, "created_at") _configBackup.CreatedAt = field.NewTime(tableName, "created_at")
_configBackup.UpdatedAt = field.NewTime(tableName, "updated_at") _configBackup.UpdatedAt = field.NewTime(tableName, "updated_at")
_configBackup.DeletedAt = field.NewField(tableName, "deleted_at") _configBackup.DeletedAt = field.NewField(tableName, "deleted_at")
@ -45,7 +45,7 @@ type configBackup struct {
configBackupDo configBackupDo
ALL field.Asterisk ALL field.Asterisk
ID field.Int ID field.Uint64
CreatedAt field.Time CreatedAt field.Time
UpdatedAt field.Time UpdatedAt field.Time
DeletedAt field.Field DeletedAt field.Field
@ -68,7 +68,7 @@ func (c configBackup) As(alias string) *configBackup {
func (c *configBackup) updateTableName(table string) *configBackup { func (c *configBackup) updateTableName(table string) *configBackup {
c.ALL = field.NewAsterisk(table) c.ALL = field.NewAsterisk(table)
c.ID = field.NewInt(table, "id") c.ID = field.NewUint64(table, "id")
c.CreatedAt = field.NewTime(table, "created_at") c.CreatedAt = field.NewTime(table, "created_at")
c.UpdatedAt = field.NewTime(table, "updated_at") c.UpdatedAt = field.NewTime(table, "updated_at")
c.DeletedAt = field.NewField(table, "deleted_at") c.DeletedAt = field.NewField(table, "deleted_at")
@ -114,7 +114,7 @@ func (c configBackup) replaceDB(db *gorm.DB) configBackup {
type configBackupDo struct{ gen.DO } type configBackupDo struct{ gen.DO }
// FirstByID Where("id=@id") // FirstByID Where("id=@id")
func (c configBackupDo) FirstByID(id int) (result *model.ConfigBackup, err error) { func (c configBackupDo) FirstByID(id uint64) (result *model.ConfigBackup, err error) {
var params []interface{} var params []interface{}
var generateSQL strings.Builder var generateSQL strings.Builder
@ -129,7 +129,7 @@ func (c configBackupDo) FirstByID(id int) (result *model.ConfigBackup, err error
} }
// DeleteByID update @@table set deleted_at=strftime('%Y-%m-%d %H:%M:%S','now') where id=@id // DeleteByID update @@table set deleted_at=strftime('%Y-%m-%d %H:%M:%S','now') where id=@id
func (c configBackupDo) DeleteByID(id int) (err error) { func (c configBackupDo) DeleteByID(id uint64) (err error) {
var params []interface{} var params []interface{}
var generateSQL strings.Builder var generateSQL strings.Builder

View file

@ -28,7 +28,7 @@ func newConfig(db *gorm.DB, opts ...gen.DOOption) config {
tableName := _config.configDo.TableName() tableName := _config.configDo.TableName()
_config.ALL = field.NewAsterisk(tableName) _config.ALL = field.NewAsterisk(tableName)
_config.ID = field.NewInt(tableName, "id") _config.ID = field.NewUint64(tableName, "id")
_config.CreatedAt = field.NewTime(tableName, "created_at") _config.CreatedAt = field.NewTime(tableName, "created_at")
_config.UpdatedAt = field.NewTime(tableName, "updated_at") _config.UpdatedAt = field.NewTime(tableName, "updated_at")
_config.DeletedAt = field.NewField(tableName, "deleted_at") _config.DeletedAt = field.NewField(tableName, "deleted_at")
@ -46,7 +46,7 @@ type config struct {
configDo configDo
ALL field.Asterisk ALL field.Asterisk
ID field.Int ID field.Uint64
CreatedAt field.Time CreatedAt field.Time
UpdatedAt field.Time UpdatedAt field.Time
DeletedAt field.Field DeletedAt field.Field
@ -70,7 +70,7 @@ func (c config) As(alias string) *config {
func (c *config) updateTableName(table string) *config { func (c *config) updateTableName(table string) *config {
c.ALL = field.NewAsterisk(table) c.ALL = field.NewAsterisk(table)
c.ID = field.NewInt(table, "id") c.ID = field.NewUint64(table, "id")
c.CreatedAt = field.NewTime(table, "created_at") c.CreatedAt = field.NewTime(table, "created_at")
c.UpdatedAt = field.NewTime(table, "updated_at") c.UpdatedAt = field.NewTime(table, "updated_at")
c.DeletedAt = field.NewField(table, "deleted_at") c.DeletedAt = field.NewField(table, "deleted_at")
@ -118,7 +118,7 @@ func (c config) replaceDB(db *gorm.DB) config {
type configDo struct{ gen.DO } type configDo struct{ gen.DO }
// FirstByID Where("id=@id") // FirstByID Where("id=@id")
func (c configDo) FirstByID(id int) (result *model.Config, err error) { func (c configDo) FirstByID(id uint64) (result *model.Config, err error) {
var params []interface{} var params []interface{}
var generateSQL strings.Builder var generateSQL strings.Builder
@ -133,7 +133,7 @@ func (c configDo) FirstByID(id int) (result *model.Config, err error) {
} }
// DeleteByID update @@table set deleted_at=strftime('%Y-%m-%d %H:%M:%S','now') where id=@id // DeleteByID update @@table set deleted_at=strftime('%Y-%m-%d %H:%M:%S','now') where id=@id
func (c configDo) DeleteByID(id int) (err error) { func (c configDo) DeleteByID(id uint64) (err error) {
var params []interface{} var params []interface{}
var generateSQL strings.Builder var generateSQL strings.Builder

View file

@ -28,7 +28,7 @@ func newDnsCredential(db *gorm.DB, opts ...gen.DOOption) dnsCredential {
tableName := _dnsCredential.dnsCredentialDo.TableName() tableName := _dnsCredential.dnsCredentialDo.TableName()
_dnsCredential.ALL = field.NewAsterisk(tableName) _dnsCredential.ALL = field.NewAsterisk(tableName)
_dnsCredential.ID = field.NewInt(tableName, "id") _dnsCredential.ID = field.NewUint64(tableName, "id")
_dnsCredential.CreatedAt = field.NewTime(tableName, "created_at") _dnsCredential.CreatedAt = field.NewTime(tableName, "created_at")
_dnsCredential.UpdatedAt = field.NewTime(tableName, "updated_at") _dnsCredential.UpdatedAt = field.NewTime(tableName, "updated_at")
_dnsCredential.DeletedAt = field.NewField(tableName, "deleted_at") _dnsCredential.DeletedAt = field.NewField(tableName, "deleted_at")
@ -45,7 +45,7 @@ type dnsCredential struct {
dnsCredentialDo dnsCredentialDo
ALL field.Asterisk ALL field.Asterisk
ID field.Int ID field.Uint64
CreatedAt field.Time CreatedAt field.Time
UpdatedAt field.Time UpdatedAt field.Time
DeletedAt field.Field DeletedAt field.Field
@ -68,7 +68,7 @@ func (d dnsCredential) As(alias string) *dnsCredential {
func (d *dnsCredential) updateTableName(table string) *dnsCredential { func (d *dnsCredential) updateTableName(table string) *dnsCredential {
d.ALL = field.NewAsterisk(table) d.ALL = field.NewAsterisk(table)
d.ID = field.NewInt(table, "id") d.ID = field.NewUint64(table, "id")
d.CreatedAt = field.NewTime(table, "created_at") d.CreatedAt = field.NewTime(table, "created_at")
d.UpdatedAt = field.NewTime(table, "updated_at") d.UpdatedAt = field.NewTime(table, "updated_at")
d.DeletedAt = field.NewField(table, "deleted_at") d.DeletedAt = field.NewField(table, "deleted_at")
@ -114,7 +114,7 @@ func (d dnsCredential) replaceDB(db *gorm.DB) dnsCredential {
type dnsCredentialDo struct{ gen.DO } type dnsCredentialDo struct{ gen.DO }
// FirstByID Where("id=@id") // FirstByID Where("id=@id")
func (d dnsCredentialDo) FirstByID(id int) (result *model.DnsCredential, err error) { func (d dnsCredentialDo) FirstByID(id uint64) (result *model.DnsCredential, err error) {
var params []interface{} var params []interface{}
var generateSQL strings.Builder var generateSQL strings.Builder
@ -129,7 +129,7 @@ func (d dnsCredentialDo) FirstByID(id int) (result *model.DnsCredential, err err
} }
// DeleteByID update @@table set deleted_at=strftime('%Y-%m-%d %H:%M:%S','now') where id=@id // DeleteByID update @@table set deleted_at=strftime('%Y-%m-%d %H:%M:%S','now') where id=@id
func (d dnsCredentialDo) DeleteByID(id int) (err error) { func (d dnsCredentialDo) DeleteByID(id uint64) (err error) {
var params []interface{} var params []interface{}
var generateSQL strings.Builder var generateSQL strings.Builder

View file

@ -28,7 +28,7 @@ func newEnvironment(db *gorm.DB, opts ...gen.DOOption) environment {
tableName := _environment.environmentDo.TableName() tableName := _environment.environmentDo.TableName()
_environment.ALL = field.NewAsterisk(tableName) _environment.ALL = field.NewAsterisk(tableName)
_environment.ID = field.NewInt(tableName, "id") _environment.ID = field.NewUint64(tableName, "id")
_environment.CreatedAt = field.NewTime(tableName, "created_at") _environment.CreatedAt = field.NewTime(tableName, "created_at")
_environment.UpdatedAt = field.NewTime(tableName, "updated_at") _environment.UpdatedAt = field.NewTime(tableName, "updated_at")
_environment.DeletedAt = field.NewField(tableName, "deleted_at") _environment.DeletedAt = field.NewField(tableName, "deleted_at")
@ -36,8 +36,6 @@ func newEnvironment(db *gorm.DB, opts ...gen.DOOption) environment {
_environment.URL = field.NewString(tableName, "url") _environment.URL = field.NewString(tableName, "url")
_environment.Token = field.NewString(tableName, "token") _environment.Token = field.NewString(tableName, "token")
_environment.Enabled = field.NewBool(tableName, "enabled") _environment.Enabled = field.NewBool(tableName, "enabled")
_environment.OperationSync = field.NewBool(tableName, "operation_sync")
_environment.SyncApiRegex = field.NewString(tableName, "sync_api_regex")
_environment.fillFieldMap() _environment.fillFieldMap()
@ -47,17 +45,15 @@ func newEnvironment(db *gorm.DB, opts ...gen.DOOption) environment {
type environment struct { type environment struct {
environmentDo environmentDo
ALL field.Asterisk ALL field.Asterisk
ID field.Int ID field.Uint64
CreatedAt field.Time CreatedAt field.Time
UpdatedAt field.Time UpdatedAt field.Time
DeletedAt field.Field DeletedAt field.Field
Name field.String Name field.String
URL field.String URL field.String
Token field.String Token field.String
Enabled field.Bool Enabled field.Bool
OperationSync field.Bool
SyncApiRegex field.String
fieldMap map[string]field.Expr fieldMap map[string]field.Expr
} }
@ -74,7 +70,7 @@ func (e environment) As(alias string) *environment {
func (e *environment) updateTableName(table string) *environment { func (e *environment) updateTableName(table string) *environment {
e.ALL = field.NewAsterisk(table) e.ALL = field.NewAsterisk(table)
e.ID = field.NewInt(table, "id") e.ID = field.NewUint64(table, "id")
e.CreatedAt = field.NewTime(table, "created_at") e.CreatedAt = field.NewTime(table, "created_at")
e.UpdatedAt = field.NewTime(table, "updated_at") e.UpdatedAt = field.NewTime(table, "updated_at")
e.DeletedAt = field.NewField(table, "deleted_at") e.DeletedAt = field.NewField(table, "deleted_at")
@ -82,8 +78,6 @@ func (e *environment) updateTableName(table string) *environment {
e.URL = field.NewString(table, "url") e.URL = field.NewString(table, "url")
e.Token = field.NewString(table, "token") e.Token = field.NewString(table, "token")
e.Enabled = field.NewBool(table, "enabled") e.Enabled = field.NewBool(table, "enabled")
e.OperationSync = field.NewBool(table, "operation_sync")
e.SyncApiRegex = field.NewString(table, "sync_api_regex")
e.fillFieldMap() e.fillFieldMap()
@ -100,7 +94,7 @@ func (e *environment) GetFieldByName(fieldName string) (field.OrderExpr, bool) {
} }
func (e *environment) fillFieldMap() { func (e *environment) fillFieldMap() {
e.fieldMap = make(map[string]field.Expr, 10) e.fieldMap = make(map[string]field.Expr, 8)
e.fieldMap["id"] = e.ID e.fieldMap["id"] = e.ID
e.fieldMap["created_at"] = e.CreatedAt e.fieldMap["created_at"] = e.CreatedAt
e.fieldMap["updated_at"] = e.UpdatedAt e.fieldMap["updated_at"] = e.UpdatedAt
@ -109,8 +103,6 @@ func (e *environment) fillFieldMap() {
e.fieldMap["url"] = e.URL e.fieldMap["url"] = e.URL
e.fieldMap["token"] = e.Token e.fieldMap["token"] = e.Token
e.fieldMap["enabled"] = e.Enabled e.fieldMap["enabled"] = e.Enabled
e.fieldMap["operation_sync"] = e.OperationSync
e.fieldMap["sync_api_regex"] = e.SyncApiRegex
} }
func (e environment) clone(db *gorm.DB) environment { func (e environment) clone(db *gorm.DB) environment {
@ -126,7 +118,7 @@ func (e environment) replaceDB(db *gorm.DB) environment {
type environmentDo struct{ gen.DO } type environmentDo struct{ gen.DO }
// FirstByID Where("id=@id") // FirstByID Where("id=@id")
func (e environmentDo) FirstByID(id int) (result *model.Environment, err error) { func (e environmentDo) FirstByID(id uint64) (result *model.Environment, err error) {
var params []interface{} var params []interface{}
var generateSQL strings.Builder var generateSQL strings.Builder
@ -141,7 +133,7 @@ func (e environmentDo) FirstByID(id int) (result *model.Environment, err error)
} }
// DeleteByID update @@table set deleted_at=strftime('%Y-%m-%d %H:%M:%S','now') where id=@id // DeleteByID update @@table set deleted_at=strftime('%Y-%m-%d %H:%M:%S','now') where id=@id
func (e environmentDo) DeleteByID(id int) (err error) { func (e environmentDo) DeleteByID(id uint64) (err error) {
var params []interface{} var params []interface{}
var generateSQL strings.Builder var generateSQL strings.Builder

View file

@ -29,6 +29,7 @@ var (
Notification *notification Notification *notification
Passkey *passkey Passkey *passkey
Site *site Site *site
SiteCategory *siteCategory
Stream *stream Stream *stream
User *user User *user
) )
@ -47,6 +48,7 @@ func SetDefault(db *gorm.DB, opts ...gen.DOOption) {
Notification = &Q.Notification Notification = &Q.Notification
Passkey = &Q.Passkey Passkey = &Q.Passkey
Site = &Q.Site Site = &Q.Site
SiteCategory = &Q.SiteCategory
Stream = &Q.Stream Stream = &Q.Stream
User = &Q.User User = &Q.User
} }
@ -66,6 +68,7 @@ func Use(db *gorm.DB, opts ...gen.DOOption) *Query {
Notification: newNotification(db, opts...), Notification: newNotification(db, opts...),
Passkey: newPasskey(db, opts...), Passkey: newPasskey(db, opts...),
Site: newSite(db, opts...), Site: newSite(db, opts...),
SiteCategory: newSiteCategory(db, opts...),
Stream: newStream(db, opts...), Stream: newStream(db, opts...),
User: newUser(db, opts...), User: newUser(db, opts...),
} }
@ -86,6 +89,7 @@ type Query struct {
Notification notification Notification notification
Passkey passkey Passkey passkey
Site site Site site
SiteCategory siteCategory
Stream stream Stream stream
User user User user
} }
@ -107,6 +111,7 @@ func (q *Query) clone(db *gorm.DB) *Query {
Notification: q.Notification.clone(db), Notification: q.Notification.clone(db),
Passkey: q.Passkey.clone(db), Passkey: q.Passkey.clone(db),
Site: q.Site.clone(db), Site: q.Site.clone(db),
SiteCategory: q.SiteCategory.clone(db),
Stream: q.Stream.clone(db), Stream: q.Stream.clone(db),
User: q.User.clone(db), User: q.User.clone(db),
} }
@ -135,6 +140,7 @@ func (q *Query) ReplaceDB(db *gorm.DB) *Query {
Notification: q.Notification.replaceDB(db), Notification: q.Notification.replaceDB(db),
Passkey: q.Passkey.replaceDB(db), Passkey: q.Passkey.replaceDB(db),
Site: q.Site.replaceDB(db), Site: q.Site.replaceDB(db),
SiteCategory: q.SiteCategory.replaceDB(db),
Stream: q.Stream.replaceDB(db), Stream: q.Stream.replaceDB(db),
User: q.User.replaceDB(db), User: q.User.replaceDB(db),
} }
@ -153,6 +159,7 @@ type queryCtx struct {
Notification *notificationDo Notification *notificationDo
Passkey *passkeyDo Passkey *passkeyDo
Site *siteDo Site *siteDo
SiteCategory *siteCategoryDo
Stream *streamDo Stream *streamDo
User *userDo User *userDo
} }
@ -171,6 +178,7 @@ func (q *Query) WithContext(ctx context.Context) *queryCtx {
Notification: q.Notification.WithContext(ctx), Notification: q.Notification.WithContext(ctx),
Passkey: q.Passkey.WithContext(ctx), Passkey: q.Passkey.WithContext(ctx),
Site: q.Site.WithContext(ctx), Site: q.Site.WithContext(ctx),
SiteCategory: q.SiteCategory.WithContext(ctx),
Stream: q.Stream.WithContext(ctx), Stream: q.Stream.WithContext(ctx),
User: q.User.WithContext(ctx), User: q.User.WithContext(ctx),
} }

View file

@ -28,7 +28,7 @@ func newNotification(db *gorm.DB, opts ...gen.DOOption) notification {
tableName := _notification.notificationDo.TableName() tableName := _notification.notificationDo.TableName()
_notification.ALL = field.NewAsterisk(tableName) _notification.ALL = field.NewAsterisk(tableName)
_notification.ID = field.NewInt(tableName, "id") _notification.ID = field.NewUint64(tableName, "id")
_notification.CreatedAt = field.NewTime(tableName, "created_at") _notification.CreatedAt = field.NewTime(tableName, "created_at")
_notification.UpdatedAt = field.NewTime(tableName, "updated_at") _notification.UpdatedAt = field.NewTime(tableName, "updated_at")
_notification.DeletedAt = field.NewField(tableName, "deleted_at") _notification.DeletedAt = field.NewField(tableName, "deleted_at")
@ -45,7 +45,7 @@ type notification struct {
notificationDo notificationDo
ALL field.Asterisk ALL field.Asterisk
ID field.Int ID field.Uint64
CreatedAt field.Time CreatedAt field.Time
UpdatedAt field.Time UpdatedAt field.Time
DeletedAt field.Field DeletedAt field.Field
@ -68,7 +68,7 @@ func (n notification) As(alias string) *notification {
func (n *notification) updateTableName(table string) *notification { func (n *notification) updateTableName(table string) *notification {
n.ALL = field.NewAsterisk(table) n.ALL = field.NewAsterisk(table)
n.ID = field.NewInt(table, "id") n.ID = field.NewUint64(table, "id")
n.CreatedAt = field.NewTime(table, "created_at") n.CreatedAt = field.NewTime(table, "created_at")
n.UpdatedAt = field.NewTime(table, "updated_at") n.UpdatedAt = field.NewTime(table, "updated_at")
n.DeletedAt = field.NewField(table, "deleted_at") n.DeletedAt = field.NewField(table, "deleted_at")
@ -114,7 +114,7 @@ func (n notification) replaceDB(db *gorm.DB) notification {
type notificationDo struct{ gen.DO } type notificationDo struct{ gen.DO }
// FirstByID Where("id=@id") // FirstByID Where("id=@id")
func (n notificationDo) FirstByID(id int) (result *model.Notification, err error) { func (n notificationDo) FirstByID(id uint64) (result *model.Notification, err error) {
var params []interface{} var params []interface{}
var generateSQL strings.Builder var generateSQL strings.Builder
@ -129,7 +129,7 @@ func (n notificationDo) FirstByID(id int) (result *model.Notification, err error
} }
// DeleteByID update @@table set deleted_at=strftime('%Y-%m-%d %H:%M:%S','now') where id=@id // DeleteByID update @@table set deleted_at=strftime('%Y-%m-%d %H:%M:%S','now') where id=@id
func (n notificationDo) DeleteByID(id int) (err error) { func (n notificationDo) DeleteByID(id uint64) (err error) {
var params []interface{} var params []interface{}
var generateSQL strings.Builder var generateSQL strings.Builder

View file

@ -28,12 +28,12 @@ func newPasskey(db *gorm.DB, opts ...gen.DOOption) passkey {
tableName := _passkey.passkeyDo.TableName() tableName := _passkey.passkeyDo.TableName()
_passkey.ALL = field.NewAsterisk(tableName) _passkey.ALL = field.NewAsterisk(tableName)
_passkey.ID = field.NewInt(tableName, "id") _passkey.ID = field.NewUint64(tableName, "id")
_passkey.CreatedAt = field.NewTime(tableName, "created_at") _passkey.CreatedAt = field.NewTime(tableName, "created_at")
_passkey.UpdatedAt = field.NewTime(tableName, "updated_at") _passkey.UpdatedAt = field.NewTime(tableName, "updated_at")
_passkey.DeletedAt = field.NewField(tableName, "deleted_at") _passkey.DeletedAt = field.NewField(tableName, "deleted_at")
_passkey.Name = field.NewString(tableName, "name") _passkey.Name = field.NewString(tableName, "name")
_passkey.UserID = field.NewInt(tableName, "user_id") _passkey.UserID = field.NewUint64(tableName, "user_id")
_passkey.RawID = field.NewString(tableName, "raw_id") _passkey.RawID = field.NewString(tableName, "raw_id")
_passkey.Credential = field.NewField(tableName, "credential") _passkey.Credential = field.NewField(tableName, "credential")
_passkey.LastUsedAt = field.NewInt64(tableName, "last_used_at") _passkey.LastUsedAt = field.NewInt64(tableName, "last_used_at")
@ -47,12 +47,12 @@ type passkey struct {
passkeyDo passkeyDo
ALL field.Asterisk ALL field.Asterisk
ID field.Int ID field.Uint64
CreatedAt field.Time CreatedAt field.Time
UpdatedAt field.Time UpdatedAt field.Time
DeletedAt field.Field DeletedAt field.Field
Name field.String Name field.String
UserID field.Int UserID field.Uint64
RawID field.String RawID field.String
Credential field.Field Credential field.Field
LastUsedAt field.Int64 LastUsedAt field.Int64
@ -72,12 +72,12 @@ func (p passkey) As(alias string) *passkey {
func (p *passkey) updateTableName(table string) *passkey { func (p *passkey) updateTableName(table string) *passkey {
p.ALL = field.NewAsterisk(table) p.ALL = field.NewAsterisk(table)
p.ID = field.NewInt(table, "id") p.ID = field.NewUint64(table, "id")
p.CreatedAt = field.NewTime(table, "created_at") p.CreatedAt = field.NewTime(table, "created_at")
p.UpdatedAt = field.NewTime(table, "updated_at") p.UpdatedAt = field.NewTime(table, "updated_at")
p.DeletedAt = field.NewField(table, "deleted_at") p.DeletedAt = field.NewField(table, "deleted_at")
p.Name = field.NewString(table, "name") p.Name = field.NewString(table, "name")
p.UserID = field.NewInt(table, "user_id") p.UserID = field.NewUint64(table, "user_id")
p.RawID = field.NewString(table, "raw_id") p.RawID = field.NewString(table, "raw_id")
p.Credential = field.NewField(table, "credential") p.Credential = field.NewField(table, "credential")
p.LastUsedAt = field.NewInt64(table, "last_used_at") p.LastUsedAt = field.NewInt64(table, "last_used_at")
@ -122,7 +122,7 @@ func (p passkey) replaceDB(db *gorm.DB) passkey {
type passkeyDo struct{ gen.DO } type passkeyDo struct{ gen.DO }
// FirstByID Where("id=@id") // FirstByID Where("id=@id")
func (p passkeyDo) FirstByID(id int) (result *model.Passkey, err error) { func (p passkeyDo) FirstByID(id uint64) (result *model.Passkey, err error) {
var params []interface{} var params []interface{}
var generateSQL strings.Builder var generateSQL strings.Builder
@ -137,7 +137,7 @@ func (p passkeyDo) FirstByID(id int) (result *model.Passkey, err error) {
} }
// DeleteByID update @@table set deleted_at=strftime('%Y-%m-%d %H:%M:%S','now') where id=@id // DeleteByID update @@table set deleted_at=strftime('%Y-%m-%d %H:%M:%S','now') where id=@id
func (p passkeyDo) DeleteByID(id int) (err error) { func (p passkeyDo) DeleteByID(id uint64) (err error) {
var params []interface{} var params []interface{}
var generateSQL strings.Builder var generateSQL strings.Builder

View file

@ -0,0 +1,370 @@
// Code generated by gorm.io/gen. DO NOT EDIT.
// Code generated by gorm.io/gen. DO NOT EDIT.
// Code generated by gorm.io/gen. DO NOT EDIT.
package query
import (
"context"
"strings"
"gorm.io/gorm"
"gorm.io/gorm/clause"
"gorm.io/gorm/schema"
"gorm.io/gen"
"gorm.io/gen/field"
"gorm.io/plugin/dbresolver"
"github.com/0xJacky/Nginx-UI/model"
)
func newSiteCategory(db *gorm.DB, opts ...gen.DOOption) siteCategory {
_siteCategory := siteCategory{}
_siteCategory.siteCategoryDo.UseDB(db, opts...)
_siteCategory.siteCategoryDo.UseModel(&model.SiteCategory{})
tableName := _siteCategory.siteCategoryDo.TableName()
_siteCategory.ALL = field.NewAsterisk(tableName)
_siteCategory.ID = field.NewUint64(tableName, "id")
_siteCategory.CreatedAt = field.NewTime(tableName, "created_at")
_siteCategory.UpdatedAt = field.NewTime(tableName, "updated_at")
_siteCategory.DeletedAt = field.NewField(tableName, "deleted_at")
_siteCategory.Name = field.NewString(tableName, "name")
_siteCategory.SyncNodeIds = field.NewField(tableName, "sync_node_ids")
_siteCategory.fillFieldMap()
return _siteCategory
}
type siteCategory struct {
siteCategoryDo
ALL field.Asterisk
ID field.Uint64
CreatedAt field.Time
UpdatedAt field.Time
DeletedAt field.Field
Name field.String
SyncNodeIds field.Field
fieldMap map[string]field.Expr
}
func (s siteCategory) Table(newTableName string) *siteCategory {
s.siteCategoryDo.UseTable(newTableName)
return s.updateTableName(newTableName)
}
func (s siteCategory) As(alias string) *siteCategory {
s.siteCategoryDo.DO = *(s.siteCategoryDo.As(alias).(*gen.DO))
return s.updateTableName(alias)
}
func (s *siteCategory) updateTableName(table string) *siteCategory {
s.ALL = field.NewAsterisk(table)
s.ID = field.NewUint64(table, "id")
s.CreatedAt = field.NewTime(table, "created_at")
s.UpdatedAt = field.NewTime(table, "updated_at")
s.DeletedAt = field.NewField(table, "deleted_at")
s.Name = field.NewString(table, "name")
s.SyncNodeIds = field.NewField(table, "sync_node_ids")
s.fillFieldMap()
return s
}
func (s *siteCategory) GetFieldByName(fieldName string) (field.OrderExpr, bool) {
_f, ok := s.fieldMap[fieldName]
if !ok || _f == nil {
return nil, false
}
_oe, ok := _f.(field.OrderExpr)
return _oe, ok
}
func (s *siteCategory) fillFieldMap() {
s.fieldMap = make(map[string]field.Expr, 6)
s.fieldMap["id"] = s.ID
s.fieldMap["created_at"] = s.CreatedAt
s.fieldMap["updated_at"] = s.UpdatedAt
s.fieldMap["deleted_at"] = s.DeletedAt
s.fieldMap["name"] = s.Name
s.fieldMap["sync_node_ids"] = s.SyncNodeIds
}
func (s siteCategory) clone(db *gorm.DB) siteCategory {
s.siteCategoryDo.ReplaceConnPool(db.Statement.ConnPool)
return s
}
func (s siteCategory) replaceDB(db *gorm.DB) siteCategory {
s.siteCategoryDo.ReplaceDB(db)
return s
}
type siteCategoryDo struct{ gen.DO }
// FirstByID Where("id=@id")
func (s siteCategoryDo) FirstByID(id uint64) (result *model.SiteCategory, err error) {
var params []interface{}
var generateSQL strings.Builder
params = append(params, id)
generateSQL.WriteString("id=? ")
var executeSQL *gorm.DB
executeSQL = s.UnderlyingDB().Where(generateSQL.String(), params...).Take(&result) // ignore_security_alert
err = executeSQL.Error
return
}
// DeleteByID update @@table set deleted_at=strftime('%Y-%m-%d %H:%M:%S','now') where id=@id
func (s siteCategoryDo) DeleteByID(id uint64) (err error) {
var params []interface{}
var generateSQL strings.Builder
params = append(params, id)
generateSQL.WriteString("update site_categories set deleted_at=strftime('%Y-%m-%d %H:%M:%S','now') where id=? ")
var executeSQL *gorm.DB
executeSQL = s.UnderlyingDB().Exec(generateSQL.String(), params...) // ignore_security_alert
err = executeSQL.Error
return
}
func (s siteCategoryDo) Debug() *siteCategoryDo {
return s.withDO(s.DO.Debug())
}
func (s siteCategoryDo) WithContext(ctx context.Context) *siteCategoryDo {
return s.withDO(s.DO.WithContext(ctx))
}
func (s siteCategoryDo) ReadDB() *siteCategoryDo {
return s.Clauses(dbresolver.Read)
}
func (s siteCategoryDo) WriteDB() *siteCategoryDo {
return s.Clauses(dbresolver.Write)
}
func (s siteCategoryDo) Session(config *gorm.Session) *siteCategoryDo {
return s.withDO(s.DO.Session(config))
}
func (s siteCategoryDo) Clauses(conds ...clause.Expression) *siteCategoryDo {
return s.withDO(s.DO.Clauses(conds...))
}
func (s siteCategoryDo) Returning(value interface{}, columns ...string) *siteCategoryDo {
return s.withDO(s.DO.Returning(value, columns...))
}
func (s siteCategoryDo) Not(conds ...gen.Condition) *siteCategoryDo {
return s.withDO(s.DO.Not(conds...))
}
func (s siteCategoryDo) Or(conds ...gen.Condition) *siteCategoryDo {
return s.withDO(s.DO.Or(conds...))
}
func (s siteCategoryDo) Select(conds ...field.Expr) *siteCategoryDo {
return s.withDO(s.DO.Select(conds...))
}
func (s siteCategoryDo) Where(conds ...gen.Condition) *siteCategoryDo {
return s.withDO(s.DO.Where(conds...))
}
func (s siteCategoryDo) Order(conds ...field.Expr) *siteCategoryDo {
return s.withDO(s.DO.Order(conds...))
}
func (s siteCategoryDo) Distinct(cols ...field.Expr) *siteCategoryDo {
return s.withDO(s.DO.Distinct(cols...))
}
func (s siteCategoryDo) Omit(cols ...field.Expr) *siteCategoryDo {
return s.withDO(s.DO.Omit(cols...))
}
func (s siteCategoryDo) Join(table schema.Tabler, on ...field.Expr) *siteCategoryDo {
return s.withDO(s.DO.Join(table, on...))
}
func (s siteCategoryDo) LeftJoin(table schema.Tabler, on ...field.Expr) *siteCategoryDo {
return s.withDO(s.DO.LeftJoin(table, on...))
}
func (s siteCategoryDo) RightJoin(table schema.Tabler, on ...field.Expr) *siteCategoryDo {
return s.withDO(s.DO.RightJoin(table, on...))
}
func (s siteCategoryDo) Group(cols ...field.Expr) *siteCategoryDo {
return s.withDO(s.DO.Group(cols...))
}
func (s siteCategoryDo) Having(conds ...gen.Condition) *siteCategoryDo {
return s.withDO(s.DO.Having(conds...))
}
func (s siteCategoryDo) Limit(limit int) *siteCategoryDo {
return s.withDO(s.DO.Limit(limit))
}
func (s siteCategoryDo) Offset(offset int) *siteCategoryDo {
return s.withDO(s.DO.Offset(offset))
}
func (s siteCategoryDo) Scopes(funcs ...func(gen.Dao) gen.Dao) *siteCategoryDo {
return s.withDO(s.DO.Scopes(funcs...))
}
func (s siteCategoryDo) Unscoped() *siteCategoryDo {
return s.withDO(s.DO.Unscoped())
}
func (s siteCategoryDo) Create(values ...*model.SiteCategory) error {
if len(values) == 0 {
return nil
}
return s.DO.Create(values)
}
func (s siteCategoryDo) CreateInBatches(values []*model.SiteCategory, batchSize int) error {
return s.DO.CreateInBatches(values, batchSize)
}
// Save : !!! underlying implementation is different with GORM
// The method is equivalent to executing the statement: db.Clauses(clause.OnConflict{UpdateAll: true}).Create(values)
func (s siteCategoryDo) Save(values ...*model.SiteCategory) error {
if len(values) == 0 {
return nil
}
return s.DO.Save(values)
}
func (s siteCategoryDo) First() (*model.SiteCategory, error) {
if result, err := s.DO.First(); err != nil {
return nil, err
} else {
return result.(*model.SiteCategory), nil
}
}
func (s siteCategoryDo) Take() (*model.SiteCategory, error) {
if result, err := s.DO.Take(); err != nil {
return nil, err
} else {
return result.(*model.SiteCategory), nil
}
}
func (s siteCategoryDo) Last() (*model.SiteCategory, error) {
if result, err := s.DO.Last(); err != nil {
return nil, err
} else {
return result.(*model.SiteCategory), nil
}
}
func (s siteCategoryDo) Find() ([]*model.SiteCategory, error) {
result, err := s.DO.Find()
return result.([]*model.SiteCategory), err
}
func (s siteCategoryDo) FindInBatch(batchSize int, fc func(tx gen.Dao, batch int) error) (results []*model.SiteCategory, err error) {
buf := make([]*model.SiteCategory, 0, batchSize)
err = s.DO.FindInBatches(&buf, batchSize, func(tx gen.Dao, batch int) error {
defer func() { results = append(results, buf...) }()
return fc(tx, batch)
})
return results, err
}
func (s siteCategoryDo) FindInBatches(result *[]*model.SiteCategory, batchSize int, fc func(tx gen.Dao, batch int) error) error {
return s.DO.FindInBatches(result, batchSize, fc)
}
func (s siteCategoryDo) Attrs(attrs ...field.AssignExpr) *siteCategoryDo {
return s.withDO(s.DO.Attrs(attrs...))
}
func (s siteCategoryDo) Assign(attrs ...field.AssignExpr) *siteCategoryDo {
return s.withDO(s.DO.Assign(attrs...))
}
func (s siteCategoryDo) Joins(fields ...field.RelationField) *siteCategoryDo {
for _, _f := range fields {
s = *s.withDO(s.DO.Joins(_f))
}
return &s
}
func (s siteCategoryDo) Preload(fields ...field.RelationField) *siteCategoryDo {
for _, _f := range fields {
s = *s.withDO(s.DO.Preload(_f))
}
return &s
}
func (s siteCategoryDo) FirstOrInit() (*model.SiteCategory, error) {
if result, err := s.DO.FirstOrInit(); err != nil {
return nil, err
} else {
return result.(*model.SiteCategory), nil
}
}
func (s siteCategoryDo) FirstOrCreate() (*model.SiteCategory, error) {
if result, err := s.DO.FirstOrCreate(); err != nil {
return nil, err
} else {
return result.(*model.SiteCategory), nil
}
}
func (s siteCategoryDo) FindByPage(offset int, limit int) (result []*model.SiteCategory, count int64, err error) {
result, err = s.Offset(offset).Limit(limit).Find()
if err != nil {
return
}
if size := len(result); 0 < limit && 0 < size && size < limit {
count = int64(size + offset)
return
}
count, err = s.Offset(-1).Limit(-1).Count()
return
}
func (s siteCategoryDo) ScanByPage(result interface{}, offset int, limit int) (count int64, err error) {
count, err = s.Count()
if err != nil {
return
}
err = s.Offset(offset).Limit(limit).Scan(result)
return
}
func (s siteCategoryDo) Scan(result interface{}) (err error) {
return s.DO.Scan(result)
}
func (s siteCategoryDo) Delete(models ...*model.SiteCategory) (result gen.ResultInfo, err error) {
return s.DO.Delete(models)
}
func (s *siteCategoryDo) withDO(do gen.Dao) *siteCategoryDo {
s.DO = *do.(*gen.DO)
return s
}

View file

@ -28,7 +28,7 @@ func newSite(db *gorm.DB, opts ...gen.DOOption) site {
tableName := _site.siteDo.TableName() tableName := _site.siteDo.TableName()
_site.ALL = field.NewAsterisk(tableName) _site.ALL = field.NewAsterisk(tableName)
_site.ID = field.NewInt(tableName, "id") _site.ID = field.NewUint64(tableName, "id")
_site.CreatedAt = field.NewTime(tableName, "created_at") _site.CreatedAt = field.NewTime(tableName, "created_at")
_site.UpdatedAt = field.NewTime(tableName, "updated_at") _site.UpdatedAt = field.NewTime(tableName, "updated_at")
_site.DeletedAt = field.NewField(tableName, "deleted_at") _site.DeletedAt = field.NewField(tableName, "deleted_at")
@ -44,7 +44,7 @@ type site struct {
siteDo siteDo
ALL field.Asterisk ALL field.Asterisk
ID field.Int ID field.Uint64
CreatedAt field.Time CreatedAt field.Time
UpdatedAt field.Time UpdatedAt field.Time
DeletedAt field.Field DeletedAt field.Field
@ -66,7 +66,7 @@ func (s site) As(alias string) *site {
func (s *site) updateTableName(table string) *site { func (s *site) updateTableName(table string) *site {
s.ALL = field.NewAsterisk(table) s.ALL = field.NewAsterisk(table)
s.ID = field.NewInt(table, "id") s.ID = field.NewUint64(table, "id")
s.CreatedAt = field.NewTime(table, "created_at") s.CreatedAt = field.NewTime(table, "created_at")
s.UpdatedAt = field.NewTime(table, "updated_at") s.UpdatedAt = field.NewTime(table, "updated_at")
s.DeletedAt = field.NewField(table, "deleted_at") s.DeletedAt = field.NewField(table, "deleted_at")
@ -110,7 +110,7 @@ func (s site) replaceDB(db *gorm.DB) site {
type siteDo struct{ gen.DO } type siteDo struct{ gen.DO }
// FirstByID Where("id=@id") // FirstByID Where("id=@id")
func (s siteDo) FirstByID(id int) (result *model.Site, err error) { func (s siteDo) FirstByID(id uint64) (result *model.Site, err error) {
var params []interface{} var params []interface{}
var generateSQL strings.Builder var generateSQL strings.Builder
@ -125,7 +125,7 @@ func (s siteDo) FirstByID(id int) (result *model.Site, err error) {
} }
// DeleteByID update @@table set deleted_at=strftime('%Y-%m-%d %H:%M:%S','now') where id=@id // DeleteByID update @@table set deleted_at=strftime('%Y-%m-%d %H:%M:%S','now') where id=@id
func (s siteDo) DeleteByID(id int) (err error) { func (s siteDo) DeleteByID(id uint64) (err error) {
var params []interface{} var params []interface{}
var generateSQL strings.Builder var generateSQL strings.Builder

View file

@ -28,7 +28,7 @@ func newStream(db *gorm.DB, opts ...gen.DOOption) stream {
tableName := _stream.streamDo.TableName() tableName := _stream.streamDo.TableName()
_stream.ALL = field.NewAsterisk(tableName) _stream.ALL = field.NewAsterisk(tableName)
_stream.ID = field.NewInt(tableName, "id") _stream.ID = field.NewUint64(tableName, "id")
_stream.CreatedAt = field.NewTime(tableName, "created_at") _stream.CreatedAt = field.NewTime(tableName, "created_at")
_stream.UpdatedAt = field.NewTime(tableName, "updated_at") _stream.UpdatedAt = field.NewTime(tableName, "updated_at")
_stream.DeletedAt = field.NewField(tableName, "deleted_at") _stream.DeletedAt = field.NewField(tableName, "deleted_at")
@ -44,7 +44,7 @@ type stream struct {
streamDo streamDo
ALL field.Asterisk ALL field.Asterisk
ID field.Int ID field.Uint64
CreatedAt field.Time CreatedAt field.Time
UpdatedAt field.Time UpdatedAt field.Time
DeletedAt field.Field DeletedAt field.Field
@ -66,7 +66,7 @@ func (s stream) As(alias string) *stream {
func (s *stream) updateTableName(table string) *stream { func (s *stream) updateTableName(table string) *stream {
s.ALL = field.NewAsterisk(table) s.ALL = field.NewAsterisk(table)
s.ID = field.NewInt(table, "id") s.ID = field.NewUint64(table, "id")
s.CreatedAt = field.NewTime(table, "created_at") s.CreatedAt = field.NewTime(table, "created_at")
s.UpdatedAt = field.NewTime(table, "updated_at") s.UpdatedAt = field.NewTime(table, "updated_at")
s.DeletedAt = field.NewField(table, "deleted_at") s.DeletedAt = field.NewField(table, "deleted_at")
@ -110,7 +110,7 @@ func (s stream) replaceDB(db *gorm.DB) stream {
type streamDo struct{ gen.DO } type streamDo struct{ gen.DO }
// FirstByID Where("id=@id") // FirstByID Where("id=@id")
func (s streamDo) FirstByID(id int) (result *model.Stream, err error) { func (s streamDo) FirstByID(id uint64) (result *model.Stream, err error) {
var params []interface{} var params []interface{}
var generateSQL strings.Builder var generateSQL strings.Builder
@ -125,7 +125,7 @@ func (s streamDo) FirstByID(id int) (result *model.Stream, err error) {
} }
// DeleteByID update @@table set deleted_at=strftime('%Y-%m-%d %H:%M:%S','now') where id=@id // DeleteByID update @@table set deleted_at=strftime('%Y-%m-%d %H:%M:%S','now') where id=@id
func (s streamDo) DeleteByID(id int) (err error) { func (s streamDo) DeleteByID(id uint64) (err error) {
var params []interface{} var params []interface{}
var generateSQL strings.Builder var generateSQL strings.Builder

View file

@ -49,6 +49,7 @@ func InitRouter() {
analytic.InitRouter(g) analytic.InitRouter(g)
user.InitManageUserRouter(g) user.InitManageUserRouter(g)
nginx.InitRouter(g) nginx.InitRouter(g)
sites.InitCategoryRouter(g)
sites.InitRouter(g) sites.InitRouter(g)
streams.InitRouter(g) streams.InitRouter(g)
config.InitRouter(g) config.InitRouter(g)