mirror of
https://github.com/usememos/memos.git
synced 2025-03-21 21:20:10 +01:00
56 lines
1.0 KiB
Go
56 lines
1.0 KiB
Go
package api
|
|
|
|
import (
|
|
"encoding/json"
|
|
"memos/api/e"
|
|
"memos/store"
|
|
"net/http"
|
|
|
|
"github.com/gorilla/mux"
|
|
)
|
|
|
|
func handleCreateMemoByWH(w http.ResponseWriter, r *http.Request) {
|
|
vars := mux.Vars(r)
|
|
openId := vars["openId"]
|
|
|
|
type CreateMemoDataBody struct {
|
|
Content string `json:"content"`
|
|
}
|
|
|
|
createMemo := CreateMemoDataBody{}
|
|
err := json.NewDecoder(r.Body).Decode(&createMemo)
|
|
|
|
if err != nil {
|
|
e.ErrorHandler(w, "REQUEST_BODY_ERROR", "Bad request")
|
|
return
|
|
}
|
|
|
|
user, err := store.GetUserByOpenId(openId)
|
|
|
|
if err != nil {
|
|
e.ErrorHandler(w, "DATABASE_ERROR", err.Error())
|
|
return
|
|
}
|
|
|
|
memo, err := store.CreateNewMemo(createMemo.Content, user.Id)
|
|
|
|
if err != nil {
|
|
e.ErrorHandler(w, "DATABASE_ERROR", err.Error())
|
|
return
|
|
}
|
|
|
|
json.NewEncoder(w).Encode(Response{
|
|
Succeed: true,
|
|
Message: "",
|
|
Data: memo,
|
|
})
|
|
}
|
|
|
|
func RegisterWebHooksRoutes(r *mux.Router) {
|
|
memoRouter := r.PathPrefix("/api/whs").Subrouter()
|
|
|
|
memoRouter.Use(JSONResponseMiddleWare)
|
|
|
|
memoRouter.HandleFunc("/memo/{openId}", handleCreateMemoByWH).Methods("POST")
|
|
}
|