feat: support export media
This commit is contained in:
@@ -12,12 +12,13 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type Channels struct {
|
type Channels struct {
|
||||||
ID int64 `sql:"primary_key"`
|
ID int64 `sql:"primary_key"`
|
||||||
UUID int64
|
UUID int64
|
||||||
Username string
|
Username string
|
||||||
Title string
|
Title string
|
||||||
CreatedAt *time.Time
|
CreatedAt *time.Time
|
||||||
UpdatedAt *time.Time
|
UpdatedAt *time.Time
|
||||||
Offset int64
|
Offset int64
|
||||||
MinID int64
|
MinID int64
|
||||||
|
ExportMedia bool
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,14 +17,15 @@ type channelsTable struct {
|
|||||||
postgres.Table
|
postgres.Table
|
||||||
|
|
||||||
// Columns
|
// Columns
|
||||||
ID postgres.ColumnInteger
|
ID postgres.ColumnInteger
|
||||||
UUID postgres.ColumnInteger
|
UUID postgres.ColumnInteger
|
||||||
Username postgres.ColumnString
|
Username postgres.ColumnString
|
||||||
Title postgres.ColumnString
|
Title postgres.ColumnString
|
||||||
CreatedAt postgres.ColumnTimestampz
|
CreatedAt postgres.ColumnTimestampz
|
||||||
UpdatedAt postgres.ColumnTimestampz
|
UpdatedAt postgres.ColumnTimestampz
|
||||||
Offset postgres.ColumnInteger
|
Offset postgres.ColumnInteger
|
||||||
MinID postgres.ColumnInteger
|
MinID postgres.ColumnInteger
|
||||||
|
ExportMedia postgres.ColumnBool
|
||||||
|
|
||||||
AllColumns postgres.ColumnList
|
AllColumns postgres.ColumnList
|
||||||
MutableColumns postgres.ColumnList
|
MutableColumns postgres.ColumnList
|
||||||
@@ -65,30 +66,32 @@ func newChannelsTable(schemaName, tableName, alias string) *ChannelsTable {
|
|||||||
|
|
||||||
func newChannelsTableImpl(schemaName, tableName, alias string) channelsTable {
|
func newChannelsTableImpl(schemaName, tableName, alias string) channelsTable {
|
||||||
var (
|
var (
|
||||||
IDColumn = postgres.IntegerColumn("id")
|
IDColumn = postgres.IntegerColumn("id")
|
||||||
UUIDColumn = postgres.IntegerColumn("uuid")
|
UUIDColumn = postgres.IntegerColumn("uuid")
|
||||||
UsernameColumn = postgres.StringColumn("username")
|
UsernameColumn = postgres.StringColumn("username")
|
||||||
TitleColumn = postgres.StringColumn("title")
|
TitleColumn = postgres.StringColumn("title")
|
||||||
CreatedAtColumn = postgres.TimestampzColumn("created_at")
|
CreatedAtColumn = postgres.TimestampzColumn("created_at")
|
||||||
UpdatedAtColumn = postgres.TimestampzColumn("updated_at")
|
UpdatedAtColumn = postgres.TimestampzColumn("updated_at")
|
||||||
OffsetColumn = postgres.IntegerColumn("offset")
|
OffsetColumn = postgres.IntegerColumn("offset")
|
||||||
MinIDColumn = postgres.IntegerColumn("min_id")
|
MinIDColumn = postgres.IntegerColumn("min_id")
|
||||||
allColumns = postgres.ColumnList{IDColumn, UUIDColumn, UsernameColumn, TitleColumn, CreatedAtColumn, UpdatedAtColumn, OffsetColumn, MinIDColumn}
|
ExportMediaColumn = postgres.BoolColumn("export_media")
|
||||||
mutableColumns = postgres.ColumnList{UUIDColumn, UsernameColumn, TitleColumn, CreatedAtColumn, UpdatedAtColumn, OffsetColumn, MinIDColumn}
|
allColumns = postgres.ColumnList{IDColumn, UUIDColumn, UsernameColumn, TitleColumn, CreatedAtColumn, UpdatedAtColumn, OffsetColumn, MinIDColumn, ExportMediaColumn}
|
||||||
|
mutableColumns = postgres.ColumnList{UUIDColumn, UsernameColumn, TitleColumn, CreatedAtColumn, UpdatedAtColumn, OffsetColumn, MinIDColumn, ExportMediaColumn}
|
||||||
)
|
)
|
||||||
|
|
||||||
return channelsTable{
|
return channelsTable{
|
||||||
Table: postgres.NewTable(schemaName, tableName, alias, allColumns...),
|
Table: postgres.NewTable(schemaName, tableName, alias, allColumns...),
|
||||||
|
|
||||||
//Columns
|
//Columns
|
||||||
ID: IDColumn,
|
ID: IDColumn,
|
||||||
UUID: UUIDColumn,
|
UUID: UUIDColumn,
|
||||||
Username: UsernameColumn,
|
Username: UsernameColumn,
|
||||||
Title: TitleColumn,
|
Title: TitleColumn,
|
||||||
CreatedAt: CreatedAtColumn,
|
CreatedAt: CreatedAtColumn,
|
||||||
UpdatedAt: UpdatedAtColumn,
|
UpdatedAt: UpdatedAtColumn,
|
||||||
Offset: OffsetColumn,
|
Offset: OffsetColumn,
|
||||||
MinID: MinIDColumn,
|
MinID: MinIDColumn,
|
||||||
|
ExportMedia: ExportMediaColumn,
|
||||||
|
|
||||||
AllColumns: allColumns,
|
AllColumns: allColumns,
|
||||||
MutableColumns: mutableColumns,
|
MutableColumns: mutableColumns,
|
||||||
|
|||||||
@@ -20,10 +20,11 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type DBChannel struct {
|
type DBChannel struct {
|
||||||
UUID int64
|
UUID int64
|
||||||
Username string
|
Username string
|
||||||
Title string
|
Title string
|
||||||
MinID int
|
MinID int
|
||||||
|
ExportMedia bool
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewDBChannel(uuid int64, username, title string) *DBChannel {
|
func NewDBChannel(uuid int64, username, title string) *DBChannel {
|
||||||
@@ -68,13 +69,14 @@ func (c *DBChannel) Get(ctx context.Context) error {
|
|||||||
if errors.Is(err, qrm.ErrNoRows) {
|
if errors.Is(err, qrm.ErrNoRows) {
|
||||||
// create new channel with default value
|
// create new channel with default value
|
||||||
m = model.Channels{
|
m = model.Channels{
|
||||||
UUID: c.UUID,
|
UUID: c.UUID,
|
||||||
Username: c.Username,
|
Username: c.Username,
|
||||||
Title: c.Title,
|
Title: c.Title,
|
||||||
MinID: 0,
|
MinID: 0,
|
||||||
Offset: 0,
|
Offset: 0,
|
||||||
CreatedAt: lo.ToPtr(time.Now()),
|
ExportMedia: false,
|
||||||
UpdatedAt: lo.ToPtr(time.Now()),
|
CreatedAt: lo.ToPtr(time.Now()),
|
||||||
|
UpdatedAt: lo.ToPtr(time.Now()),
|
||||||
}
|
}
|
||||||
|
|
||||||
if _, err := tbl.INSERT(tbl.AllColumns.Except(tbl.ID)).MODEL(m).ExecContext(ctx, db); err != nil {
|
if _, err := tbl.INSERT(tbl.AllColumns.Except(tbl.ID)).MODEL(m).ExecContext(ctx, db); err != nil {
|
||||||
@@ -85,6 +87,7 @@ func (c *DBChannel) Get(ctx context.Context) error {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
c.MinID = int(m.MinID)
|
c.MinID = int(m.MinID)
|
||||||
|
c.ExportMedia = m.ExportMedia
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user