82 lines
2.2 KiB
Go
82 lines
2.2 KiB
Go
package client
|
|
|
|
import (
|
|
"context"
|
|
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
type (
|
|
Model interface {
|
|
subscribeApplicationModel
|
|
}
|
|
subscribeApplicationModel interface {
|
|
Insert(ctx context.Context, data *SubscribeApplication) error
|
|
FindOne(ctx context.Context, id int64) (*SubscribeApplication, error)
|
|
Update(ctx context.Context, data *SubscribeApplication) error
|
|
Delete(ctx context.Context, id int64) error
|
|
List(ctx context.Context) ([]*SubscribeApplication, error)
|
|
Transaction(ctx context.Context, fn func(db *gorm.DB) error) error
|
|
}
|
|
DefaultSubscribeApplicationModel struct {
|
|
*gorm.DB
|
|
}
|
|
)
|
|
|
|
func NewSubscribeApplicationModel(db *gorm.DB) Model {
|
|
return &DefaultSubscribeApplicationModel{
|
|
DB: db.Model(&SubscribeApplication{}),
|
|
}
|
|
}
|
|
|
|
func (m *DefaultSubscribeApplicationModel) Insert(ctx context.Context, data *SubscribeApplication) error {
|
|
if err := m.WithContext(ctx).Create(data).Error; err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *DefaultSubscribeApplicationModel) FindOne(ctx context.Context, id int64) (*SubscribeApplication, error) {
|
|
var resp SubscribeApplication
|
|
if err := m.WithContext(ctx).Where("id = ?", id).First(&resp).Error; err != nil {
|
|
return nil, err
|
|
}
|
|
return &resp, nil
|
|
}
|
|
|
|
func (m *DefaultSubscribeApplicationModel) Update(ctx context.Context, data *SubscribeApplication) error {
|
|
if _, err := m.FindOne(ctx, data.Id); err != nil {
|
|
return err
|
|
}
|
|
if err := m.WithContext(ctx).Save(data).Error; err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *DefaultSubscribeApplicationModel) Delete(ctx context.Context, id int64) error {
|
|
if err := m.WithContext(ctx).Where("`id` = ?", id).Delete(&SubscribeApplication{}).Error; err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *DefaultSubscribeApplicationModel) Transaction(ctx context.Context, fn func(db *gorm.DB) error) error {
|
|
tx := m.WithContext(ctx).Begin()
|
|
if err := fn(tx); err != nil {
|
|
if rbErr := tx.Rollback().Error; rbErr != nil {
|
|
return rbErr
|
|
}
|
|
return err
|
|
}
|
|
return tx.Commit().Error
|
|
}
|
|
|
|
func (m *DefaultSubscribeApplicationModel) List(ctx context.Context) ([]*SubscribeApplication, error) {
|
|
var resp []*SubscribeApplication
|
|
if err := m.WithContext(ctx).Find(&resp).Error; err != nil {
|
|
return nil, err
|
|
}
|
|
return resp, nil
|
|
}
|