77 lines
1.4 KiB
TypeScript
77 lines
1.4 KiB
TypeScript
import { APIClient } from "./ApiClient";
|
|
|
|
export interface Balances {
|
|
[key: number]: number;
|
|
}
|
|
|
|
export interface MovementUpdate {
|
|
account_id: number;
|
|
time: number;
|
|
label: String;
|
|
file_id?: number;
|
|
amount: number;
|
|
checked: boolean;
|
|
}
|
|
|
|
export interface Movement {
|
|
id: number;
|
|
account_id: number;
|
|
time: number;
|
|
label: string;
|
|
file_id?: number;
|
|
amount: number;
|
|
checked: boolean;
|
|
time_create: number;
|
|
time_update: number;
|
|
}
|
|
|
|
export class MovementApi {
|
|
/**
|
|
* Get all accounts balances
|
|
*/
|
|
static async GetAllBalances(): Promise<Balances> {
|
|
return (
|
|
await APIClient.exec({
|
|
uri: `/accounts/balances`,
|
|
method: "GET",
|
|
})
|
|
).data;
|
|
}
|
|
|
|
/**
|
|
* Create a new movement
|
|
*/
|
|
static async Create(q: MovementUpdate): Promise<void> {
|
|
await APIClient.exec({
|
|
uri: `/movement`,
|
|
method: "POST",
|
|
jsonData: q,
|
|
});
|
|
}
|
|
|
|
/**
|
|
* Get all the movements of an account
|
|
*/
|
|
static async GetAccountMovements(account_id: number): Promise<Movement[]> {
|
|
return (
|
|
await APIClient.exec({
|
|
uri: `/account/${account_id}/movements`,
|
|
method: "GET",
|
|
})
|
|
).data;
|
|
}
|
|
|
|
/**
|
|
* Update a movement information
|
|
*/
|
|
static async Update(movement: Movement): Promise<Movement> {
|
|
return (
|
|
await APIClient.exec({
|
|
uri: `/movement/${movement.id}`,
|
|
method: "PUT",
|
|
jsonData: movement,
|
|
})
|
|
).data;
|
|
}
|
|
}
|