Encrypted messaging app
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

48 lines
1.3 KiB

  1. package Database
  2. import (
  3. "github.com/gofrs/uuid"
  4. "gorm.io/gorm"
  5. )
  6. type FriendRequestDeviceToken struct {
  7. Base
  8. DeviceTokenID uuid.UUID `gorm:"type:uuid;column:device_token_id;not null;" json:"device_token_id"`
  9. DeviceToken DeviceToken `gorm:"not null;" json:"device_token"`
  10. FriendRequestID uuid.UUID `gorm:"type:uuid;column:friend_request_id;not null;" json:"friend_request_id"`
  11. FriendRequest FriendRequest `gorm:"not null;" json:"friend_device_tokens"`
  12. }
  13. type DeviceToken struct {
  14. Base
  15. Token string `gorm:"not null" json:"token"` // Stored encrypted
  16. DeviceType string `gorm:"not null" json:"device_type"` // Stored encrypted
  17. }
  18. func GetUserDeviceTokenById(id string) (DeviceToken, error) {
  19. var (
  20. deviceToken DeviceToken
  21. err error
  22. )
  23. err = DB.First(&deviceToken, "id = ?", id).
  24. Error
  25. return deviceToken, err
  26. }
  27. func (deviceToken *DeviceToken) CreateUserDeviceToken() error {
  28. var err error
  29. err = DB.Session(&gorm.Session{FullSaveAssociations: true}).
  30. Create(deviceToken).
  31. Error
  32. return err
  33. }
  34. func (deviceToken *DeviceToken) DeleteUserDeviceToken() error {
  35. return DB.Session(&gorm.Session{FullSaveAssociations: true}).
  36. Delete(deviceToken).
  37. Error
  38. }