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.

69 lines
1.4 KiB

  1. package Friends
  2. import (
  3. "encoding/json"
  4. "io/ioutil"
  5. "net/http"
  6. "git.tovijaeschke.xyz/tovi/Envelope/Backend/Database"
  7. "git.tovijaeschke.xyz/tovi/Envelope/Backend/Models"
  8. "git.tovijaeschke.xyz/tovi/Envelope/Backend/Util"
  9. )
  10. func Friend(w http.ResponseWriter, r *http.Request) {
  11. var (
  12. userData Models.User
  13. returnJson []byte
  14. err error
  15. )
  16. userData, err = Util.GetUserById(w, r)
  17. if err != nil {
  18. http.Error(w, "Not Found", http.StatusNotFound)
  19. return
  20. }
  21. returnJson, err = json.MarshalIndent(userData, "", " ")
  22. if err != nil {
  23. http.Error(w, "Error", http.StatusInternalServerError)
  24. return
  25. }
  26. w.WriteHeader(http.StatusOK)
  27. w.Write(returnJson)
  28. }
  29. func CreateFriendRequest(w http.ResponseWriter, r *http.Request) {
  30. var (
  31. friendRequest Models.FriendRequest
  32. requestBody []byte
  33. returnJson []byte
  34. err error
  35. )
  36. requestBody, err = ioutil.ReadAll(r.Body)
  37. if err != nil {
  38. panic(err)
  39. }
  40. err = json.Unmarshal(requestBody, &friendRequest)
  41. if err != nil {
  42. panic(err)
  43. }
  44. err = Database.CreateFriendRequest(&friendRequest)
  45. if err != nil {
  46. panic(err)
  47. }
  48. returnJson, err = json.MarshalIndent(friendRequest, "", " ")
  49. if err != nil {
  50. http.Error(w, "Error", http.StatusInternalServerError)
  51. w.WriteHeader(http.StatusInternalServerError)
  52. return
  53. }
  54. // Return updated json
  55. w.WriteHeader(http.StatusOK)
  56. w.Write(returnJson)
  57. }