33 lines
700 B
Go
33 lines
700 B
Go
|
|
package handler
|
||
|
|
|
||
|
|
import (
|
||
|
|
"encoding/json"
|
||
|
|
"gitea.kleinsense.nl/DariusKlein/kleinTodo/common"
|
||
|
|
"gitea.kleinsense.nl/DariusKlein/kleinTodo/common/jwt"
|
||
|
|
"net/http"
|
||
|
|
)
|
||
|
|
|
||
|
|
func StoreHandler(w http.ResponseWriter, r *http.Request) {
|
||
|
|
user, err := jwt.GetVerifiedUser(r)
|
||
|
|
if handleError(w, http.StatusUnauthorized, err) {
|
||
|
|
return
|
||
|
|
}
|
||
|
|
|
||
|
|
var todo common.StoreTodoRequest
|
||
|
|
// Decode input
|
||
|
|
err = json.NewDecoder(r.Body).Decode(&todo)
|
||
|
|
if handleError(w, http.StatusBadRequest, err) {
|
||
|
|
return
|
||
|
|
}
|
||
|
|
|
||
|
|
store, err := common.GetTodoDataStore()
|
||
|
|
if handleError(w, http.StatusInternalServerError, err) {
|
||
|
|
return
|
||
|
|
}
|
||
|
|
|
||
|
|
err = todo.Store(store, user)
|
||
|
|
if handleError(w, http.StatusInternalServerError, err) {
|
||
|
|
return
|
||
|
|
}
|
||
|
|
}
|