Add stubs for more transaction API endpoints.
This commit is contained in:
parent
4b9e859c85
commit
277a6dc591
|
@ -64,6 +64,10 @@ HttpRequestHandler mapApiHandlers(string webOrigin) {
|
||||||
a.map(HttpMethod.DELETE, PROFILE_PATH ~ "/vendors/:vendorId:ulong", &handleDeleteVendor);
|
a.map(HttpMethod.DELETE, PROFILE_PATH ~ "/vendors/:vendorId:ulong", &handleDeleteVendor);
|
||||||
|
|
||||||
a.map(HttpMethod.GET, PROFILE_PATH ~ "/transactions", &handleGetTransactions);
|
a.map(HttpMethod.GET, PROFILE_PATH ~ "/transactions", &handleGetTransactions);
|
||||||
|
a.map(HttpMethod.GET, PROFILE_PATH ~ "/transactions/:transactionId:ulong", &handleGetTransaction);
|
||||||
|
a.map(HttpMethod.POST, PROFILE_PATH ~ "/transactions", &handleAddTransaction);
|
||||||
|
a.map(HttpMethod.PUT, PROFILE_PATH ~ "/transactions/:transactionId:ulong", &handleUpdateTransaction);
|
||||||
|
a.map(HttpMethod.DELETE, PROFILE_PATH ~ "/transactions/:transactionId:ulong", &handleDeleteTransaction);
|
||||||
|
|
||||||
import data_api;
|
import data_api;
|
||||||
// Various other data endpoints:
|
// Various other data endpoints:
|
||||||
|
|
|
@ -4,6 +4,7 @@ import handy_http_primitives;
|
||||||
import handy_http_data.json;
|
import handy_http_data.json;
|
||||||
import handy_http_handlers.path_handler;
|
import handy_http_handlers.path_handler;
|
||||||
import slf4d;
|
import slf4d;
|
||||||
|
import std.typecons;
|
||||||
|
|
||||||
import transaction.model;
|
import transaction.model;
|
||||||
import transaction.data;
|
import transaction.data;
|
||||||
|
@ -15,6 +16,8 @@ import util.money;
|
||||||
import util.pagination;
|
import util.pagination;
|
||||||
import util.data;
|
import util.data;
|
||||||
|
|
||||||
|
// Transactions API
|
||||||
|
|
||||||
immutable DEFAULT_TRANSACTION_PAGE = PageRequest(1, 10, [Sort("timestamp", SortDir.DESC)]);
|
immutable DEFAULT_TRANSACTION_PAGE = PageRequest(1, 10, [Sort("timestamp", SortDir.DESC)]);
|
||||||
|
|
||||||
struct TransactionsListItemAccount {
|
struct TransactionsListItemAccount {
|
||||||
|
@ -65,6 +68,49 @@ void handleGetTransactions(ref ServerHttpRequest request, ref ServerHttpResponse
|
||||||
writeJsonBody(response, responsePage);
|
writeJsonBody(response, responsePage);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void handleGetTransaction(ref ServerHttpRequest request, ref ServerHttpResponse response) {
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
struct AddTransactionPayloadLineItem {
|
||||||
|
long valuePerItem;
|
||||||
|
ulong quantity;
|
||||||
|
string description;
|
||||||
|
Nullable!ulong categoryId;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct AddTransactionPayload {
|
||||||
|
string timestamp;
|
||||||
|
ulong amount;
|
||||||
|
string currencyCode;
|
||||||
|
string description;
|
||||||
|
Nullable!ulong vendorId;
|
||||||
|
Nullable!ulong categoryId;
|
||||||
|
Nullable!ulong creditedAccountId;
|
||||||
|
Nullable!ulong debitedAccountId;
|
||||||
|
string[] tags;
|
||||||
|
AddTransactionPayloadLineItem[] lineItems;
|
||||||
|
}
|
||||||
|
|
||||||
|
void handleAddTransaction(ref ServerHttpRequest request, ref ServerHttpResponse response) {
|
||||||
|
ProfileDataSource ds = getProfileDataSource(request);
|
||||||
|
auto payload = readJsonBodyAs!AddTransactionPayload(request);
|
||||||
|
addTransaction2(ds, payload);
|
||||||
|
}
|
||||||
|
|
||||||
|
void handleUpdateTransaction(ref ServerHttpRequest request, ref ServerHttpResponse response) {
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
void handleDeleteTransaction(ref ServerHttpRequest request, ref ServerHttpResponse response) {
|
||||||
|
ProfileDataSource ds = getProfileDataSource(request);
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
private ulong getTransactionIdOrThrow(in ServerHttpRequest request) {
|
||||||
|
return getPathParamOrThrow(request, "transactionId");
|
||||||
|
}
|
||||||
|
|
||||||
// Vendors API
|
// Vendors API
|
||||||
|
|
||||||
void handleGetVendors(ref ServerHttpRequest request, ref ServerHttpResponse response) {
|
void handleGetVendors(ref ServerHttpRequest request, ref ServerHttpResponse response) {
|
||||||
|
|
|
@ -19,6 +19,10 @@ Page!TransactionsListItem getTransactions(ProfileDataSource ds, in PageRequest p
|
||||||
return page; // Return an empty page for now!
|
return page; // Return an empty page for now!
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void addTransaction2(ProfileDataSource ds, in AddTransactionPayload payload) {
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
|
||||||
void addTransaction(
|
void addTransaction(
|
||||||
ProfileDataSource ds,
|
ProfileDataSource ds,
|
||||||
SysTime timestamp,
|
SysTime timestamp,
|
||||||
|
|
Loading…
Reference in New Issue