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.

48 lines
985 B

  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. )
  9. // CreateFriendRequest creates a FriendRequest from post data
  10. func CreateFriendRequest(w http.ResponseWriter, r *http.Request) {
  11. var (
  12. friendRequest Models.FriendRequest
  13. requestBody []byte
  14. returnJSON []byte
  15. err error
  16. )
  17. requestBody, err = ioutil.ReadAll(r.Body)
  18. if err != nil {
  19. panic(err)
  20. }
  21. err = json.Unmarshal(requestBody, &friendRequest)
  22. if err != nil {
  23. panic(err)
  24. }
  25. friendRequest.AcceptedAt.Scan(nil)
  26. err = Database.CreateFriendRequest(&friendRequest)
  27. if err != nil {
  28. panic(err)
  29. }
  30. returnJSON, err = json.MarshalIndent(friendRequest, "", " ")
  31. if err != nil {
  32. http.Error(w, "Error", http.StatusInternalServerError)
  33. w.WriteHeader(http.StatusInternalServerError)
  34. return
  35. }
  36. // Return updated json
  37. w.WriteHeader(http.StatusOK)
  38. w.Write(returnJSON)
  39. }