add try catch + auth()
continuous-integration/drone/push Build is passing Details

adminDb
remrem 3 years ago
parent 1aad9a02e3
commit 3019fe95b6

@ -18,14 +18,19 @@ class API {
// Check for authentication // Check for authentication
static Future<Response> authenticator(Request req) async { static Future<Response> authenticator(Request req) async {
// final List<String> required = ["email", "password"]; final List<String> required = ["email", "password"];
final body = await bodyToJson(req);
// if (await checkRequiredFields(required, req)) {
// return Response.ok('true'); if (await checkRequiredFields(required, body)) {
// } else { try {
// return Response.badRequest(); await AccountsToPostgres.selectHashById(body[required[0]]);
// } } catch (e) {
return Response(404); return Response(404); // no hash found -> 404 (Not Found)
}
return Response.ok('true');
} else {
return Response.badRequest();
}
} }
// Download sqlite password file // Download sqlite password file
@ -55,14 +60,17 @@ class API {
// Create account // Create account
static Future<Response> createAccount(Request req) async { static Future<Response> createAccount(Request req) async {
final List<String> required = ["email", "password", "salt"]; final List<String> required = ["email", "password", "salt"];
var tmp = await req.readAsString(); final body = await bodyToJson(req);
final Map<String, dynamic> body = json.decode(tmp);
if (await checkRequiredFields(required, body)) { if (await checkRequiredFields(required, body)) {
// List<String> twofa = body[required[3]]; // List<String> twofa = body[required[3]];
await AccountsToPostgres.create( try {
body[required[0]], body[required[1]], body[required[2]] /*, twofa*/); await AccountsToPostgres.create(body[required[0]], body[required[1]],
return Response.ok('true'); body[required[2]] /*, twofa*/);
} catch (e) {
return Response(409); // email already exists -> 409 (Conflict)
}
return Response.ok('Account successfully created');
} else { } else {
return Response.badRequest(); return Response.badRequest();
} }
@ -103,7 +111,6 @@ class API {
// Check if required fields are in req body // Check if required fields are in req body
static Future<bool> checkRequiredFields( static Future<bool> checkRequiredFields(
List<String> fields, Map<String, dynamic> body) async { List<String> fields, Map<String, dynamic> body) async {
// json object read -> check dic keys
for (String itFields in fields) { for (String itFields in fields) {
if (!body.containsKey(itFields)) { if (!body.containsKey(itFields)) {
print(itFields); print(itFields);
@ -117,6 +124,11 @@ class API {
return true; return true;
} }
static Future<Map<String, dynamic>> bodyToJson(Request req) async {
var tmp = await req.readAsString();
return json.decode(tmp);
}
// //
// ADMIN // ADMIN
// //

Loading…
Cancel
Save