mirror of
https://github.com/jc21/nginx-proxy-manager.git
synced 2024-08-30 18:22:48 +00:00
55 lines
1.4 KiB
Go
55 lines
1.4 KiB
Go
package stream
|
|
|
|
import (
|
|
"npm/internal/database"
|
|
"npm/internal/model"
|
|
"npm/internal/types"
|
|
|
|
"github.com/rotisserie/eris"
|
|
)
|
|
|
|
// Model is the model
|
|
type Model struct {
|
|
model.ModelBase
|
|
ExpiresOn types.DBDate `json:"expires_on" gorm:"column:expires_on" filter:"expires_on,integer"`
|
|
UserID uint `json:"user_id" gorm:"column:user_id" filter:"user_id,integer"`
|
|
Provider string `json:"provider" gorm:"column:provider" filter:"provider,string"`
|
|
Name string `json:"name" gorm:"column:name" filter:"name,string"`
|
|
DomainNames types.JSONB `json:"domain_names" gorm:"column:domain_names" filter:"domain_names,string"`
|
|
Meta types.JSONB `json:"-" gorm:"column:meta"`
|
|
}
|
|
|
|
// TableName overrides the table name used by gorm
|
|
func (Model) TableName() string {
|
|
return "stream"
|
|
}
|
|
|
|
// LoadByID will load from an ID
|
|
func (m *Model) LoadByID(id uint) error {
|
|
db := database.GetDB()
|
|
result := db.First(&m, id)
|
|
return result.Error
|
|
}
|
|
|
|
// Save will save this model to the DB
|
|
func (m *Model) Save() error {
|
|
if m.UserID == 0 {
|
|
return eris.Errorf("User ID must be specified")
|
|
}
|
|
|
|
db := database.GetDB()
|
|
result := db.Save(m)
|
|
return result.Error
|
|
}
|
|
|
|
// Delete will mark row as deleted
|
|
func (m *Model) Delete() bool {
|
|
if m.ID == 0 {
|
|
// Can't delete a new object
|
|
return false
|
|
}
|
|
db := database.GetDB()
|
|
result := db.Delete(m)
|
|
return result.Error == nil
|
|
}
|