func HandleNewNote(w http.ResponseWriter, r *http.Request) { // Get the payload payload, err := ioutil.ReadAll(r.Body) if err != nil { log.Print(err) fRS := rsrq.NewFailureRS("[1]: Bad Payload", "") handler_util.SendResponse(w, fRS) return } // Use payload to build a RQ newNoteRQ := rsrq.NewNoteRQ{} jsonErr := json.Unmarshal(payload, &newNoteRQ) if jsonErr != nil { log.Print(jsonErr) fRS := rsrq.NewFailureRS("[2]: Unreadable JSON payload", "") handler_util.SendResponse(w, fRS) return } // Validate the RQ err, _ = validate.Required(newNoteRQ) //TODO get list of infractions to return in failure RS if err != nil { log.Print(err) fRS := rsrq.NewFailureRS("[3]: "+err.Error(), newNoteRQ.UserToken) //TODO return api level error message handler_util.SendResponse(w, fRS) return } //TODO VALIDATE USER // Create new note key, and insert note into db newNoteKey := newNoteToken("notehack") //TODO use a key from config file err = insertNewNote(newNoteRQ.UserToken, newNoteKey, newNoteRQ.Parent) if err != nil { log.Print(err) fRS := rsrq.NewFailureRS("[4]: "+err.Error(), newNoteRQ.UserToken) //TODO return api level error message handler_util.SendResponse(w, fRS) return } // return new note key to user rs := rsrq.NewNoteRS{newNoteKey, "New Note"} // TODO make constant for new note name rsByte, err := json.Marshal(rs) if err != nil { log.Print(err) return } w.Write(rsByte) }
func HandleListNotes(w http.ResponseWriter, r *http.Request) { // Get the payload payload, err := ioutil.ReadAll(r.Body) if err != nil { log.Print(err) fRS := rsrq.NewFailureRS("Bad Payload", "") handler_util.SendResponse(w, fRS) return } // Use payload to build a RQ listNotesRQ := rsrq.ListNotesRQ{} jsonErr := json.Unmarshal(payload, &listNotesRQ) if jsonErr != nil { log.Print(jsonErr) fRS := rsrq.NewFailureRS("Unreadable JSON payload", "") handler_util.SendResponse(w, fRS) return } // Validate the RQ err, _ = validate.Required(listNotesRQ) //TODO get list of infractions to return in failure RS if err != nil { log.Print(err) fRS := rsrq.NewFailureRS(err.Error(), listNotesRQ.UserToken) //TODO return api level error message handler_util.SendResponse(w, fRS) return } //TODO VALIDATE USER //Get a list of notes notes, err := getNotes(listNotesRQ) if err != nil { log.Print(err) fRS := rsrq.NewFailureRS(err.Error(), listNotesRQ.UserToken) //TODO return api level error message handler_util.SendResponse(w, fRS) return } listNotesRS := rsrq.ListNotesRS{notes} handler_util.SendResponse(w, listNotesRS) }
func HandleArchiveNote(w http.ResponseWriter, r *http.Request) { // Get the payload payload, err := ioutil.ReadAll(r.Body) if err != nil { log.Print(err) fRS := rsrq.NewFailureRS("[1]: Bad Payload", "") handler_util.SendResponse(w, fRS) return } // Use payload to build a RQ archiveNoteRQ := rsrq.ArchiveNoteRQ{} jsonErr := json.Unmarshal(payload, &archiveNoteRQ) if jsonErr != nil { log.Print(jsonErr) fRS := rsrq.NewFailureRS("[2]: Unreadable JSON payload", "") handler_util.SendResponse(w, fRS) return } // Validate the RQ err, _ = validate.Required(archiveNoteRQ) //TODO get list of infractions to return in failure RS if err != nil { log.Print(err) fRS := rsrq.NewFailureRS("[3]: "+err.Error(), archiveNoteRQ.UserToken) //TODO return api level error message handler_util.SendResponse(w, fRS) return } //TODO VALIDATE USER err = archiveNote(archiveNoteRQ) if err != nil { fRS := rsrq.NewFailureRS("[4]: "+err.Error(), archiveNoteRQ.UserToken) //TODO return api level error message handler_util.SendResponse(w, fRS) return } w.Write([]byte("ok")) }