(e *core.RequestEvent)
| 116 | } |
| 117 | |
| 118 | func collectionUpdate(e *core.RequestEvent) error { |
| 119 | collection, err := e.App.FindCollectionByNameOrId(e.Request.PathValue("collection")) |
| 120 | if err != nil || collection == nil { |
| 121 | return e.NotFoundError("", err) |
| 122 | } |
| 123 | |
| 124 | if err := e.BindBody(collection); err != nil { |
| 125 | return e.BadRequestError("Failed to load the submitted data due to invalid formatting.", err) |
| 126 | } |
| 127 | |
| 128 | event := new(core.CollectionRequestEvent) |
| 129 | event.RequestEvent = e |
| 130 | event.Collection = collection |
| 131 | |
| 132 | return event.App.OnCollectionUpdateRequest().Trigger(event, func(e *core.CollectionRequestEvent) error { |
| 133 | if err := e.App.Save(e.Collection); err != nil { |
| 134 | // validation failure |
| 135 | var validationErrors validation.Errors |
| 136 | if errors.As(err, &validationErrors) { |
| 137 | return e.BadRequestError("Failed to update collection.", validationErrors) |
| 138 | } |
| 139 | |
| 140 | // other generic db error |
| 141 | return e.BadRequestError("Failed to update collection. Raw error: \n"+err.Error(), nil) |
| 142 | } |
| 143 | |
| 144 | return execAfterSuccessTx(true, e.App, func() error { |
| 145 | return e.JSON(http.StatusOK, e.Collection) |
| 146 | }) |
| 147 | }) |
| 148 | } |
| 149 | |
| 150 | func collectionDelete(e *core.RequestEvent) error { |
| 151 | collection, err := e.App.FindCachedCollectionByNameOrId(e.Request.PathValue("collection")) |
nothing calls this directly
no test coverage detected
searching dependent graphs…