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.

42 lines
984 B

  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 GetMessageThreadById(id string, user Models.User) (Models.MessageThread, error) {
  8. var (
  9. messageThread Models.MessageThread
  10. err error
  11. )
  12. err = DB.Preload(clause.Associations).
  13. Where("id = ?", id).
  14. Where("user_id = ?", user.ID).
  15. First(&messageThread).
  16. Error
  17. return messageThread, err
  18. }
  19. func CreateMessageThread(messageThread *Models.MessageThread) error {
  20. return DB.Session(&gorm.Session{FullSaveAssociations: true}).
  21. Create(messageThread).
  22. Error
  23. }
  24. func UpdateMessageThread(messageThread *Models.MessageThread) error {
  25. return DB.Session(&gorm.Session{FullSaveAssociations: true}).
  26. Where("id = ?", messageThread.ID).
  27. Updates(messageThread).
  28. Error
  29. }
  30. func DeleteMessageThread(messageThread *Models.MessageThread) error {
  31. return DB.Session(&gorm.Session{FullSaveAssociations: true}).
  32. Delete(messageThread).
  33. Error
  34. }