1+ #include "../../lavandula/include/lavandula.h"
2+ #include "middleware.h"
3+
4+ HttpResponse successOrFailureResponse (bool success , char * message ) {
5+ JsonBuilder * builder = jsonBuilder ();
6+ jsonPutBool (builder , "success" , success );
7+ jsonPutString (builder , "message" , message );
8+
9+ char * json = jsonStringify (builder );
10+ freeJsonBuilder (builder );
11+
12+ return response (json , HTTP_BAD_REQUEST , APPLICATION_JSON );
13+ }
14+
15+ HttpResponse success (char * message ) {
16+ return successOrFailureResponse (true, message );
17+ }
18+
19+ HttpResponse failure (char * message ) {
20+ return successOrFailureResponse (false, message );
21+
22+ }
23+
24+ middleware (registerUserValidator , ctx , m ) {
25+ JsonBuilder * body = jsonParse (ctx .request .body );
26+ if (!body ) {
27+ return failure ("Error: no JSON body provided." );
28+ }
29+
30+ if (!jsonHasKey (body , "username" ) || !jsonHasKey (body , "password" )) {
31+ freeJsonBuilder (body );
32+ return failure ("Missing 'username' or 'password' in request body" );
33+ }
34+ freeJsonBuilder (body );
35+
36+ return next (ctx , m );
37+ }
38+
39+ middleware (loginUserValidator , ctx , m ) {
40+ JsonBuilder * body = jsonParse (ctx .request .body );
41+ if (!body ) {
42+ return failure ("Error: no JSON body provided." );
43+ }
44+
45+ if (!jsonHasKey (body , "username" ) || !jsonHasKey (body , "password" )) {
46+ freeJsonBuilder (body );
47+ return failure ("Missing 'username' or 'password' in request body" );
48+ }
49+ freeJsonBuilder (body );
50+
51+ return next (ctx , m );
52+ }
53+
54+ middleware (logoutUserValidator , ctx , m ) {
55+ return next (ctx , m );
56+ }
0 commit comments