@@ -2,7 +2,7 @@ package api
22
33import (
44 "encoding/json"
5- "memos/common/error "
5+ "memos/api/e "
66 "memos/store"
77 "net/http"
88
@@ -11,15 +11,22 @@ import (
1111
1212func handleGetMyMemos (w http.ResponseWriter , r * http.Request ) {
1313 userId , _ := GetUserIdInCookie (r )
14+ urlParams := r .URL .Query ()
15+ deleted := urlParams .Get ("deleted" )
16+ onlyDeletedFlag := deleted == "true"
1417
15- memos , err := store .GetMemosByUserId (userId )
18+ memos , err := store .GetMemosByUserId (userId , onlyDeletedFlag )
1619
1720 if err != nil {
18- error .ErrorHandler (w , "DATABASE_ERROR" )
21+ e .ErrorHandler (w , "DATABASE_ERROR" , err . Error () )
1922 return
2023 }
2124
22- json .NewEncoder (w ).Encode (memos )
25+ json .NewEncoder (w ).Encode (Response {
26+ Succeed : true ,
27+ Message : "" ,
28+ Data : memos ,
29+ })
2330}
2431
2532type CreateMemo struct {
@@ -29,54 +36,77 @@ type CreateMemo struct {
2936func handleCreateMemo (w http.ResponseWriter , r * http.Request ) {
3037 userId , _ := GetUserIdInCookie (r )
3138
32- var createMemo CreateMemo
39+ createMemo := CreateMemo {}
3340 err := json .NewDecoder (r .Body ).Decode (& createMemo )
3441
3542 if err != nil {
36- error .ErrorHandler (w , "" )
43+ e .ErrorHandler (w , "REQUEST_BODY_ERROR" , "Bad request " )
3744 return
3845 }
3946
4047 memo , err := store .CreateNewMemo (createMemo .Content , userId )
4148
4249 if err != nil {
43- error .ErrorHandler (w , "" )
50+ e .ErrorHandler (w , "DATABASE_ERROR" , err . Error () )
4451 return
4552 }
4653
47- json .NewEncoder (w ).Encode (memo )
54+ json .NewEncoder (w ).Encode (Response {
55+ Succeed : true ,
56+ Message : "" ,
57+ Data : memo ,
58+ })
4859}
4960
5061func handleUpdateMemo (w http.ResponseWriter , r * http.Request ) {
5162 vars := mux .Vars (r )
5263 memoId := vars ["id" ]
5364
54- userId , _ := GetUserIdInCookie (r )
65+ memoPatch := store.MemoPatch {}
66+ err := json .NewDecoder (r .Body ).Decode (& memoPatch )
5567
56- var createMemo CreateMemo
57- err := json .NewDecoder (r .Body ).Decode (& createMemo )
68+ if err != nil {
69+ e .ErrorHandler (w , "REQUEST_BODY_ERROR" , "Bad request" )
70+ return
71+ }
72+
73+ memo , err := store .UpdateMemo (memoId , & memoPatch )
5874
5975 if err != nil {
60- error .ErrorHandler (w , "" )
76+ e .ErrorHandler (w , "DATABASE_ERROR" , err . Error () )
6177 return
6278 }
6379
64- memo , err := store .UpdateMemo (memoId , createMemo .Content , userId )
80+ json .NewEncoder (w ).Encode (Response {
81+ Succeed : true ,
82+ Message : "" ,
83+ Data : memo ,
84+ })
85+ }
86+
87+ func handleDeleteMemo (w http.ResponseWriter , r * http.Request ) {
88+ vars := mux .Vars (r )
89+ memoId := vars ["id" ]
90+
91+ _ , err := store .DeleteMemo (memoId )
6592
6693 if err != nil {
67- error .ErrorHandler (w , "" )
94+ e .ErrorHandler (w , "DATABASE_ERROR" , err . Error () )
6895 return
6996 }
7097
71- json .NewEncoder (w ).Encode (memo )
98+ json .NewEncoder (w ).Encode (Response {
99+ Succeed : true ,
100+ Message : "" ,
101+ Data : nil ,
102+ })
72103}
73104
74105func RegisterMemoRoutes (r * mux.Router ) {
75106 memoRouter := r .PathPrefix ("/api/memo" ).Subrouter ()
76107
77- memoRouter .Use (AuthCheckerMiddleWare )
78-
79108 memoRouter .HandleFunc ("/all" , handleGetMyMemos ).Methods ("GET" )
80109 memoRouter .HandleFunc ("/" , handleCreateMemo ).Methods ("PUT" )
81110 memoRouter .HandleFunc ("/{id}" , handleUpdateMemo ).Methods ("PATCH" )
111+ memoRouter .HandleFunc ("/{id}" , handleDeleteMemo ).Methods ("DELETE" )
82112}
0 commit comments