Live video on the AT Protocol
at issue-784 40 lines 804 B view raw
1package model 2 3import ( 4 "errors" 5 6 "gorm.io/gorm" 7) 8 9type Labeler struct { 10 DID string `gorm:"primaryKey;column:did"` 11 Cursor int64 `gorm:"column:cursor"` 12} 13 14func (m *DBModel) GetLabeler(did string) (*Labeler, error) { 15 var labeler Labeler 16 err := m.DB.Where("did = ?", did).First(&labeler).Error 17 if errors.Is(err, gorm.ErrRecordNotFound) { 18 return nil, nil 19 } 20 if err != nil { 21 return nil, err 22 } 23 return &labeler, nil 24} 25 26func (m *DBModel) CreateLabeler(did string) (*Labeler, error) { 27 labeler := &Labeler{ 28 DID: did, 29 Cursor: 0, 30 } 31 32 if err := m.DB.Create(labeler).Error; err != nil { 33 return nil, err 34 } 35 return labeler, nil 36} 37 38func (m *DBModel) UpdateLabelerCursor(did string, cursor int64) error { 39 return m.DB.Model(&Labeler{}).Where("did = ?", did).Update("cursor", cursor).Error 40}