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.

74 lines
1.2 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 GetFriendById(id string) (Models.Friend, error) {
  8. var (
  9. userData Models.Friend
  10. err error
  11. )
  12. err = DB.Preload(clause.Associations).
  13. First(&userData, "id = ?", id).
  14. Error
  15. return userData, err
  16. }
  17. func GetFriendsByIds(ids []string) ([]Models.Friend, error) {
  18. var (
  19. userData []Models.Friend
  20. err error
  21. )
  22. err = DB.Preload(clause.Associations).
  23. Find(&userData, ids).
  24. Error
  25. return userData, err
  26. }
  27. func CreateFriend(userData *Models.Friend) error {
  28. var (
  29. err error
  30. )
  31. err = DB.Session(&gorm.Session{FullSaveAssociations: true}).
  32. Create(userData).
  33. Error
  34. return err
  35. }
  36. func UpdateFriend(id string, userData *Models.Friend) error {
  37. var (
  38. err error
  39. )
  40. err = DB.Model(&userData).
  41. Omit("id").
  42. Where("id = ?", id).
  43. Updates(userData).
  44. Error
  45. if err != nil {
  46. return err
  47. }
  48. err = DB.Model(Models.Friend{}).
  49. Where("id = ?", id).
  50. First(userData).
  51. Error
  52. return err
  53. }
  54. func DeleteFriend(userData *Models.Friend) error {
  55. return DB.Session(&gorm.Session{FullSaveAssociations: true}).
  56. Delete(userData).
  57. Error
  58. }