feat: compelete bal pending screen
This commit is contained in:
parent
b12809ba93
commit
618764f513
4 changed files with 72 additions and 3 deletions
|
|
@ -50,6 +50,22 @@ class BalRepository {
|
|||
}
|
||||
}
|
||||
|
||||
bool isABalOngoing() {
|
||||
return _bals?.where((bal) => bal.state == BalState.ongoing).isNotEmpty ??
|
||||
false;
|
||||
}
|
||||
|
||||
Future<Result<Bal>> startBal(int id) async {
|
||||
if (isABalOngoing()) {
|
||||
return Result.error(
|
||||
Exception("Cannot have multiple BAL ongoing at the same time !"),
|
||||
);
|
||||
}
|
||||
final result = await _apiClient.startBal(id);
|
||||
_getBalsNoCache();
|
||||
return result;
|
||||
}
|
||||
|
||||
Future<Result<Bal>> editBal(
|
||||
int id,
|
||||
String name,
|
||||
|
|
@ -57,13 +73,13 @@ class BalRepository {
|
|||
DateTime end,
|
||||
) async {
|
||||
final result = await _apiClient.editBal(id, name, start, end);
|
||||
_getBalsNoCache();
|
||||
await _getBalsNoCache();
|
||||
return result;
|
||||
}
|
||||
|
||||
Future<Result<void>> addBal(String name, DateTime start, DateTime end) async {
|
||||
final result = await _apiClient.addBal(name, start, end);
|
||||
_getBalsNoCache();
|
||||
await _getBalsNoCache();
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -42,6 +42,33 @@ class ApiClient {
|
|||
* =================
|
||||
*/
|
||||
|
||||
Future<Result<Bal>> startBal(int id) async {
|
||||
final client = Client();
|
||||
try {
|
||||
final headers = await _getHeaders();
|
||||
final response = await client.post(
|
||||
Uri.parse("https://$apiBasePath/bal/${id.toString()}/start"),
|
||||
headers: headers,
|
||||
);
|
||||
if (response.statusCode == 200) {
|
||||
final json = jsonDecode(response.body);
|
||||
return Result.ok(Bal.fromJSON(json));
|
||||
} else if (response.statusCode == 403) {
|
||||
throw "You don't own the specified BAL";
|
||||
} else if (response.statusCode == 404) {
|
||||
throw "No BAL with specified ID found";
|
||||
} else if (response.statusCode == 409) {
|
||||
throw "Cannot have multiple BAl ongoing at the same time!";
|
||||
} else {
|
||||
throw "Unknown error";
|
||||
}
|
||||
} catch (e) {
|
||||
return Result.error(Exception(e));
|
||||
} finally {
|
||||
client.close();
|
||||
}
|
||||
}
|
||||
|
||||
Future<Result<Bal>> editBal(
|
||||
int id,
|
||||
String name,
|
||||
|
|
|
|||
Reference in a new issue