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

Method create

pkg/server/controllers/books.go:124–156  ·  view source on GitHub ↗
(r *http.Request)

Source from the content-addressed store, hash-verified

122}
123
124func (b *Books) create(r *http.Request) (database.Book, error) {
125 user := context.User(r.Context())
126 if user == nil {
127 return database.Book{}, app.ErrLoginRequired
128 }
129
130 var params createBookPayload
131 if err := parseRequestData(r, &params); err != nil {
132 return database.Book{}, pkgErrors.Wrap(err, "parsing request payload")
133 }
134
135 if err := validateCreateBookPayload(params); err != nil {
136 return database.Book{}, pkgErrors.Wrap(err, "validating payload")
137 }
138
139 var bookCount int64
140 err := b.app.DB.Model(database.Book{}).
141 Where("user_id = ? AND label = ?", user.ID, params.Name).
142 Count(&bookCount).Error
143 if err != nil {
144 return database.Book{}, pkgErrors.Wrap(err, "checking duplicate")
145 }
146 if bookCount > 0 {
147 return database.Book{}, app.ErrDuplicateBook
148 }
149
150 book, err := b.app.CreateBook(*user, params.Name)
151 if err != nil {
152 return database.Book{}, pkgErrors.Wrap(err, "inserting a book")
153 }
154
155 return book, nil
156}
157
158// CreateBookResp is the response from create book api
159type CreateBookResp struct {

Callers 1

V3CreateMethod · 0.95

Calls 4

UserFunction · 0.92
parseRequestDataFunction · 0.85
CreateBookMethod · 0.80

Tested by

no test coverage detected