Added @GetMapping, prepped for new category/balance api
This commit is contained in:
parent
711e420c61
commit
6d1af2f46d
|
|
@ -1,11 +1,11 @@
|
|||
module data_api;
|
||||
|
||||
import handy_http_primitives;
|
||||
import handy_http_handlers.path_handler : PathMapping;
|
||||
import handy_http_handlers.path_handler : GetMapping;
|
||||
import handy_http_data;
|
||||
import util.money;
|
||||
|
||||
@PathMapping(HttpMethod.GET, "/api/currencies")
|
||||
@GetMapping("/api/currencies")
|
||||
void handleGetCurrencies(ref ServerHttpRequest request, ref ServerHttpResponse response) {
|
||||
writeJsonBody(response, ALL_CURRENCIES);
|
||||
}
|
||||
|
|
@ -135,24 +135,33 @@ private ulong getVendorId(in ServerHttpRequest request) {
|
|||
|
||||
// Categories API
|
||||
|
||||
@PathMapping(HttpMethod.GET, PROFILE_PATH ~ "/categories")
|
||||
@GetMapping(PROFILE_PATH ~ "/categories")
|
||||
void handleGetCategories(ref ServerHttpRequest request, ref ServerHttpResponse response) {
|
||||
TransactionCategoryTree[] categories = getCategories(getProfileDataSource(request));
|
||||
writeJsonBody(response, categories);
|
||||
}
|
||||
|
||||
@PathMapping(HttpMethod.GET, PROFILE_PATH ~ "/categories/:categoryId:ulong")
|
||||
@GetMapping(PROFILE_PATH ~ "/categories/:categoryId:ulong")
|
||||
void handleGetCategory(ref ServerHttpRequest request, ref ServerHttpResponse response) {
|
||||
auto category = getCategory(getProfileDataSource(request), getCategoryId(request));
|
||||
writeJsonBody(response, category);
|
||||
}
|
||||
|
||||
@PathMapping(HttpMethod.GET, PROFILE_PATH ~ "/categories/:categoryId:ulong/children")
|
||||
@GetMapping(PROFILE_PATH ~ "/categories/:categoryId:ulong/children")
|
||||
void handleGetChildCategories(ref ServerHttpRequest request, ref ServerHttpResponse response) {
|
||||
auto children = getChildCategories(getProfileDataSource(request), getCategoryId(request));
|
||||
writeJsonBody(response, children);
|
||||
}
|
||||
|
||||
@GetMapping(PROFILE_PATH ~ "/categories/:categoryId:ulong/balances")
|
||||
void handleGetCategoryBalances(ref ServerHttpRequest request, ref ServerHttpResponse response) {
|
||||
response.status = HttpStatus.NOT_IMPLEMENTED;
|
||||
// TODO: Add an API endpoint to provide a "balance" for the category.
|
||||
// This would be the sum of credits and debits for all transactions set
|
||||
// to this category or any child of it, over a specified interval, or for
|
||||
// some default interval if none is provided.
|
||||
}
|
||||
|
||||
struct CategoryPayload {
|
||||
string name;
|
||||
string description;
|
||||
|
|
|
|||
Loading…
Reference in New Issue