channel.go 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package model
  2. import (
  3. _ "gorm.io/driver/sqlite"
  4. )
  5. type Channel struct {
  6. Id int `json:"id"`
  7. Type int `json:"type" gorm:"default:0"`
  8. Key string `json:"key"`
  9. Status int `json:"status" gorm:"default:1"`
  10. }
  11. func GetAllChannels(startIdx int, num int) ([]*Channel, error) {
  12. var channels []*Channel
  13. var err error
  14. err = DB.Order("id desc").Limit(num).Offset(startIdx).Find(&channels).Error
  15. return channels, err
  16. }
  17. func SearchChannels(keyword string) (channels []*Channel, err error) {
  18. err = DB.Select([]string{"id", "key"}, keyword, keyword).Find(&channels).Error
  19. return channels, err
  20. }
  21. func GetChannelById(id int) (*Channel, error) {
  22. channel := Channel{Id: id}
  23. var err error = nil
  24. err = DB.Select([]string{"id", "type"}).First(&channel, "id = ?", id).Error
  25. return &channel, err
  26. }
  27. func (channel *Channel) Insert() error {
  28. var err error
  29. err = DB.Create(channel).Error
  30. return err
  31. }
  32. func (channel *Channel) Update() error {
  33. var err error
  34. err = DB.Model(channel).Updates(channel).Error
  35. return err
  36. }
  37. // Delete Make sure link is valid! Because we will use os.Remove to delete it!
  38. func (channel *Channel) Delete() error {
  39. var err error
  40. err = DB.Delete(channel).Error
  41. return err
  42. }