diff --git a/lib/api/api.dart b/lib/api/api.dart index 21a0416..2e425ab 100644 --- a/lib/api/api.dart +++ b/lib/api/api.dart @@ -1,5 +1,6 @@ import 'package:shelf/shelf.dart'; import 'package:shelf_router/shelf_router.dart'; +import 'dart:convert'; // Class for all static function that handles api routes class API { @@ -13,11 +14,14 @@ class API { } // Check for authentication - static Response authenticator(Request req) { - final mail = req.params['mail']; - final password = req.params['cyphered_password_hash']; + static Future authenticator(Request req) async { + final List required = ["mail", "password"]; + + if (await checkRequiredFields(required, req)) { + return Response.ok('true'); + } - return Response.ok('true'); + return Response.badRequest(); } // Download sqlite password file @@ -85,10 +89,11 @@ class API { static Future checkRequiredFields( List fields, Request req) async { // json object read -> check dic keys - final body = await req.readAsString(); + var tmp = await req.readAsString(); + final body = json.decode(tmp); bool check = false; for (String s in fields) { - if (req.params['$s'] == "") { + if (body['$s'] == "") { return false; } } diff --git a/test/server_test.dart b/test/server_test.dart index 3081d87..5bcc0ff 100644 --- a/test/server_test.dart +++ b/test/server_test.dart @@ -23,17 +23,23 @@ void main() { test('Root', () async { final response = await get(Uri.parse('$host/')); expect(response.statusCode, 200); - expect(response.body, 'Hello, World!\n'); + expect(response.body, 'Greetings from PassWorld!\n'); }); - test('Echo', () async { - final response = await get(Uri.parse('$host/echo/hello')); - expect(response.statusCode, 200); - expect(response.body, 'hello\n'); - }); + // test('Echo', () async { + // final response = await get(Uri.parse('$host/echo/hello')); + // expect(response.statusCode, 200); + // expect(response.body, 'hello\n'); + // }); test('404', () async { final response = await get(Uri.parse('$host/foobar')); - expect(response.statusCode, 404); + expect(response.body, 'Route not found\n'); + }); + + test('Auth', () async { + final resonse = await get(Uri.parse('$host/auth')); + expect(resonse.statusCode, 400); + expect(resonse.body, 'false'); }); }