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.

60 lines
1.1 KiB

  1. package Database
  2. import (
  3. "git.tovijaeschke.xyz/tovi/Envelope/Backend/Models"
  4. "gorm.io/gorm"
  5. "gorm.io/gorm/clause"
  6. )
  7. func GetMessageById(id string) (Models.Message, error) {
  8. var (
  9. message Models.Message
  10. err error
  11. )
  12. err = DB.Preload(clause.Associations).
  13. First(&message, "id = ?", id).
  14. Error
  15. return message, err
  16. }
  17. func GetMessagesByAssociationKey(associationKey string) ([]Models.Message, error) {
  18. var (
  19. messages []Models.Message
  20. err error
  21. )
  22. err = DB.Preload("MessageData").
  23. Find(&messages, "association_key = ?", associationKey).
  24. Error
  25. return messages, err
  26. }
  27. func CreateMessage(message *Models.Message) error {
  28. var err error
  29. err = DB.Session(&gorm.Session{FullSaveAssociations: true}).
  30. Create(message).
  31. Error
  32. return err
  33. }
  34. func CreateMessages(messages *[]Models.Message) error {
  35. var err error
  36. err = DB.Session(&gorm.Session{FullSaveAssociations: true}).
  37. Create(messages).
  38. Error
  39. return err
  40. }
  41. func DeleteMessage(message *Models.Message) error {
  42. return DB.Session(&gorm.Session{FullSaveAssociations: true}).
  43. Delete(message).
  44. Error
  45. }