(r *http.Request)
| 199 | } |
| 200 | |
| 201 | func (n *Notes) create(r *http.Request) (database.Note, error) { |
| 202 | user := context.User(r.Context()) |
| 203 | if user == nil { |
| 204 | return database.Note{}, app.ErrLoginRequired |
| 205 | } |
| 206 | |
| 207 | var params createNotePayload |
| 208 | if err := parseRequestData(r, ¶ms); err != nil { |
| 209 | return database.Note{}, errors.Wrap(err, "parsing request payload") |
| 210 | } |
| 211 | |
| 212 | if err := validateCreateNotePayload(params); err != nil { |
| 213 | return database.Note{}, err |
| 214 | } |
| 215 | |
| 216 | var book database.Book |
| 217 | if err := n.app.DB.Where("uuid = ? AND user_id = ?", params.BookUUID, user.ID).First(&book).Error; err != nil { |
| 218 | return database.Note{}, errors.Wrapf(err, "finding book %s", params.BookUUID) |
| 219 | } |
| 220 | |
| 221 | client := getClientType(r) |
| 222 | note, err := n.app.CreateNote(*user, params.BookUUID, params.Content, params.AddedOn, params.EditedOn, client) |
| 223 | if err != nil { |
| 224 | return database.Note{}, errors.Wrap(err, "creating note") |
| 225 | } |
| 226 | |
| 227 | // preload associations |
| 228 | note.User = *user |
| 229 | note.Book = book |
| 230 | |
| 231 | return note, nil |
| 232 | } |
| 233 | |
| 234 | func (n *Notes) del(r *http.Request) (database.Note, error) { |
| 235 | vars := mux.Vars(r) |
no test coverage detected