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.

91 lines
1.8 KiB

  1. package Database
  2. import (
  3. "git.tovijaeschke.xyz/tovi/Capsule/Backend/Models"
  4. "gorm.io/gorm"
  5. "gorm.io/gorm/clause"
  6. )
  7. func GetUserConversationById(id string) (Models.UserConversation, error) {
  8. var (
  9. message Models.UserConversation
  10. err error
  11. )
  12. err = DB.First(&message, "id = ?", id).
  13. Error
  14. return message, err
  15. }
  16. func GetUserConversationsByUserId(id string) ([]Models.UserConversation, error) {
  17. var (
  18. conversations []Models.UserConversation
  19. err error
  20. )
  21. err = DB.Find(&conversations, "user_id = ?", id).
  22. Error
  23. return conversations, err
  24. }
  25. func CreateUserConversation(userConversation *Models.UserConversation) error {
  26. var err error
  27. err = DB.Session(&gorm.Session{FullSaveAssociations: true}).
  28. Create(userConversation).
  29. Error
  30. return err
  31. }
  32. func CreateUserConversations(userConversations *[]Models.UserConversation) error {
  33. var err error
  34. err = DB.Create(userConversations).
  35. Error
  36. return err
  37. }
  38. func UpdateUserConversation(userConversation *Models.UserConversation) error {
  39. var err error
  40. err = DB.Model(Models.UserConversation{}).
  41. Updates(userConversation).
  42. Error
  43. return err
  44. }
  45. func UpdateUserConversations(userConversations *[]Models.UserConversation) error {
  46. var err error
  47. err = DB.Model(Models.UserConversation{}).
  48. Updates(userConversations).
  49. Error
  50. return err
  51. }
  52. func UpdateOrCreateUserConversations(userConversations *[]Models.UserConversation) error {
  53. var err error
  54. err = DB.Model(Models.UserConversation{}).
  55. Clauses(clause.OnConflict{
  56. Columns: []clause.Column{{Name: "id"}},
  57. DoUpdates: clause.AssignmentColumns([]string{"admin"}),
  58. }).
  59. Create(userConversations).
  60. Error
  61. return err
  62. }
  63. func DeleteUserConversation(userConversation *Models.UserConversation) error {
  64. return DB.Session(&gorm.Session{FullSaveAssociations: true}).
  65. Delete(userConversation).
  66. Error
  67. }