MCPcopy Index your code
hub / github.com/dnote/dnote / create

Method create

pkg/server/controllers/notes.go:201–232  ·  view source on GitHub ↗
(r *http.Request)

Source from the content-addressed store, hash-verified

199}
200
201func (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, &params); 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
234func (n *Notes) del(r *http.Request) (database.Note, error) {
235 vars := mux.Vars(r)

Callers 1

V3CreateMethod · 0.95

Calls 5

UserFunction · 0.92
parseRequestDataFunction · 0.85
getClientTypeFunction · 0.85
CreateNoteMethod · 0.80

Tested by

no test coverage detected