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.

78 lines
1.7 KiB

  1. package Friends
  2. import (
  3. "encoding/json"
  4. "net/http"
  5. "net/url"
  6. "strings"
  7. "git.tovijaeschke.xyz/tovi/Envelope/Backend/Api/Auth"
  8. "git.tovijaeschke.xyz/tovi/Envelope/Backend/Database"
  9. "git.tovijaeschke.xyz/tovi/Envelope/Backend/Models"
  10. )
  11. func EncryptedFriendRequestList(w http.ResponseWriter, r *http.Request) {
  12. var (
  13. userSession Models.Session
  14. friends []Models.FriendRequest
  15. returnJson []byte
  16. err error
  17. )
  18. userSession, err = Auth.CheckCookie(r)
  19. if err != nil {
  20. http.Error(w, "Forbidden", http.StatusUnauthorized)
  21. return
  22. }
  23. friends, err = Database.GetFriendRequestsByUserId(userSession.UserID.String())
  24. if err != nil {
  25. http.Error(w, "Error", http.StatusInternalServerError)
  26. return
  27. }
  28. returnJson, err = json.MarshalIndent(friends, "", " ")
  29. if err != nil {
  30. http.Error(w, "Error", http.StatusInternalServerError)
  31. return
  32. }
  33. w.WriteHeader(http.StatusOK)
  34. w.Write(returnJson)
  35. }
  36. func EncryptedFriendList(w http.ResponseWriter, r *http.Request) {
  37. var (
  38. friends []Models.Friend
  39. query url.Values
  40. friendIds []string
  41. returnJson []byte
  42. ok bool
  43. err error
  44. )
  45. query = r.URL.Query()
  46. friendIds, ok = query["friend_ids"]
  47. if !ok {
  48. http.Error(w, "Invalid Data", http.StatusBadGateway)
  49. return
  50. }
  51. // TODO: Fix error handling here
  52. friendIds = strings.Split(friendIds[0], ",")
  53. friends, err = Database.GetFriendsByIds(friendIds)
  54. if err != nil {
  55. http.Error(w, "Error", http.StatusInternalServerError)
  56. return
  57. }
  58. returnJson, err = json.MarshalIndent(friends, "", " ")
  59. if err != nil {
  60. http.Error(w, "Error", http.StatusInternalServerError)
  61. return
  62. }
  63. w.WriteHeader(http.StatusOK)
  64. w.Write(returnJson)
  65. }