@@ -14,6 +14,27 @@ void set_options_method_header(served::response& res) {
14
14
res.set_header (" Access-Control-Max-Age" , " 86400" );
15
15
}
16
16
17
+ status_t set_response_content (status_t ret, char ** json_result) {
18
+ status_t http_ret;
19
+ if (ret == SC_OK) {
20
+ return SC_HTTP_OK;
21
+ }
22
+
23
+ cJSON* json_obj = cJSON_CreateObject ();
24
+ if ((ret & SC_ERROR_MASK) == 0x03 ) {
25
+ http_ret = SC_HTTP_NOT_FOUND;
26
+ cJSON_AddStringToObject (json_obj, " message" , " Request not found" );
27
+ } else if ((ret & SC_ERROR_MASK) == 0x07 ) {
28
+ http_ret = SC_HTTP_BAD_REQUEST;
29
+ cJSON_AddStringToObject (json_obj, " message" , " Invalid request header" );
30
+ } else {
31
+ http_ret = SC_HTTP_INTERNAL_SERVICE_ERROR;
32
+ cJSON_AddStringToObject (json_obj, " message" , " Internal service error" );
33
+ }
34
+ *json_result = cJSON_PrintUnformatted (json_obj);
35
+ return http_ret;
36
+ }
37
+
17
38
int main (int , char const **) {
18
39
served::multiplexer mux;
19
40
mux.use_after (served::plugin::access_log);
@@ -35,18 +56,17 @@ int main(int, char const**) {
35
56
set_options_method_header (res);
36
57
})
37
58
.get ([&](served::response& res, const served::request& req) {
59
+ status_t ret = SC_OK;
38
60
char * json_result = NULL ;
39
61
40
- api_receive_mam_message (&service, req.params [" bundle" ].c_str (),
41
- &json_result);
62
+ ret = api_receive_mam_message (&service, req.params [" bundle" ].c_str (),
63
+ &json_result);
64
+ ret = set_response_content (ret, &json_result);
42
65
43
66
res.set_header (" Content-Type" , " application/json" );
44
67
res.set_header (" Access-Control-Allow-Origin" , " *" );
45
- if (!json_result) {
46
- res.set_status (SC_NOT_FOUND);
47
- } else {
48
- res << json_result;
49
- }
68
+ res.set_status (ret);
69
+ res << json_result;
50
70
});
51
71
52
72
/* *
@@ -62,12 +82,15 @@ int main(int, char const**) {
62
82
set_options_method_header (res);
63
83
})
64
84
.get ([&](served::response& res, const served::request& req) {
85
+ status_t ret = SC_OK;
65
86
char * json_result;
66
87
67
- api_find_transactions_by_tag (&service, req.params [" tag" ].c_str (),
68
- &json_result);
88
+ ret = api_find_transactions_by_tag (&service, req.params [" tag" ].c_str (),
89
+ &json_result);
90
+ ret = set_response_content (ret, &json_result);
69
91
res.set_header (" Content-Type" , " application/json" );
70
92
res.set_header (" Access-Control-Allow-Origin" , " *" );
93
+ res.set_status (ret);
71
94
res << json_result;
72
95
});
73
96
@@ -84,12 +107,15 @@ int main(int, char const**) {
84
107
set_options_method_header (res);
85
108
})
86
109
.get ([&](served::response& res, const served::request& req) {
110
+ status_t ret = SC_OK;
87
111
char * json_result;
88
112
89
- api_get_transaction_object (&service, req.params [" tx" ].c_str (),
90
- &json_result);
113
+ ret = api_get_transaction_object (&service, req.params [" tx" ].c_str (),
114
+ &json_result);
115
+ ret = set_response_content (ret, &json_result);
91
116
res.set_header (" Content-Type" , " application/json" );
92
117
res.set_header (" Access-Control-Allow-Origin" , " *" );
118
+ res.set_status (ret);
93
119
res << json_result;
94
120
});
95
121
@@ -106,12 +132,15 @@ int main(int, char const**) {
106
132
set_options_method_header (res);
107
133
})
108
134
.get ([&](served::response& res, const served::request& req) {
135
+ status_t ret = SC_OK;
109
136
char * json_result;
110
137
111
- api_find_transactions_obj_by_tag (&service, req.params [" tag" ].c_str (),
112
- &json_result);
138
+ ret = api_find_transactions_obj_by_tag (
139
+ &service, req.params [" tag" ].c_str (), &json_result);
140
+ ret = set_response_content (ret, &json_result);
113
141
res.set_header (" Content-Type" , " application/json" );
114
142
res.set_header (" Access-Control-Allow-Origin" , " *" );
143
+ res.set_status (ret);
115
144
res << json_result;
116
145
});
117
146
@@ -126,11 +155,14 @@ int main(int, char const**) {
126
155
set_options_method_header (res);
127
156
})
128
157
.get ([&](served::response& res, const served::request& req) {
158
+ status_t ret = SC_OK;
129
159
char * json_result;
130
160
131
- api_get_tips_pair (&service, &json_result);
161
+ ret = api_get_tips_pair (&service, &json_result);
162
+ ret = set_response_content (ret, &json_result);
132
163
res.set_header (" Content-Type" , " application/json" );
133
164
res.set_header (" Access-Control-Allow-Origin" , " *" );
165
+ res.set_status (ret);
134
166
res << json_result;
135
167
});
136
168
@@ -145,11 +177,14 @@ int main(int, char const**) {
145
177
set_options_method_header (res);
146
178
})
147
179
.get ([&](served::response& res, const served::request& req) {
180
+ status_t ret = SC_OK;
148
181
char * json_result;
149
182
150
- api_get_tips (&service, &json_result);
183
+ ret = api_get_tips (&service, &json_result);
184
+ ret = set_response_content (ret, &json_result);
151
185
res.set_header (" Content-Type" , " application/json" );
152
186
res.set_header (" Access-Control-Allow-Origin" , " *" );
187
+ res.set_status (ret);
153
188
res << json_result;
154
189
});
155
190
@@ -164,11 +199,14 @@ int main(int, char const**) {
164
199
set_options_method_header (res);
165
200
})
166
201
.get ([&](served::response& res, const served::request& req) {
202
+ status_t ret = SC_OK;
167
203
char * json_result;
168
204
169
- api_generate_address (&service, &json_result);
205
+ ret = api_generate_address (&service, &json_result);
206
+ ret = set_response_content (ret, &json_result);
170
207
res.set_header (" Content-Type" , " application/json" );
171
208
res.set_header (" Access-Control-Allow-Origin" , " *" );
209
+ res.set_status (ret);
172
210
res << json_result;
173
211
});
174
212
@@ -183,6 +221,7 @@ int main(int, char const**) {
183
221
set_options_method_header (res);
184
222
})
185
223
.post ([&](served::response& res, const served::request& req) {
224
+ status_t ret = SC_OK;
186
225
char * json_result;
187
226
188
227
if (req.header (" content-type" ).find (" application/json" ) ==
@@ -192,10 +231,12 @@ int main(int, char const**) {
192
231
" Invalid request header" );
193
232
json_result = cJSON_PrintUnformatted (json_obj);
194
233
195
- res.set_status (SC_BAD_REQUEST );
234
+ res.set_status (SC_HTTP_BAD_REQUEST );
196
235
cJSON_Delete (json_obj);
197
236
} else {
198
- api_send_transfer (&service, req.body ().c_str (), &json_result);
237
+ ret = api_send_transfer (&service, req.body ().c_str (), &json_result);
238
+ ret = set_response_content (ret, &json_result);
239
+ res.set_status (ret);
199
240
}
200
241
201
242
res.set_header (" Content-Type" , " application/json" );
@@ -219,7 +260,7 @@ int main(int, char const**) {
219
260
cJSON_AddStringToObject (json_obj, " message" , " Invalid path" );
220
261
const char * json = cJSON_PrintUnformatted (json_obj);
221
262
222
- res.set_status (SC_BAD_REQUEST );
263
+ res.set_status (SC_HTTP_BAD_REQUEST );
223
264
res.set_header (" Content-Type" , " application/json" );
224
265
res.set_header (" Access-Control-Allow-Origin" , " *" );
225
266
res << json;
0 commit comments