$app->group('/v1', function () use($app) {
    /**
     * GET route to export whole database to JSON
     *
     */
    $app->get('/database/export', function () use($app) {
        //create empty user
        $oUser = new User();
        //request header
        $request = $app->request();
        $public_key = $request->headers('X-PublicKey');
        //get User array from sent public key
        $user = $oUser->getUserByPublicKey($public_key);
        $userdb = $oUser->setDefaultDatabase($user['LoginID']);
        //get access level string of user
        $access_level = $oUser->getAccessLevel($user['LoginID']);
        //create new instance with the user specific database
        $tempTool = new DbExport($userdb);
        //read relevant table names with the user specific access level
        $export = $tempTool->readRelevantTables($access_level);
        $app->contentType('application/json;charset=utf-8');
        echo json_encode($export);
    });
    /**
     * GET route to export database meta information to JSON
     *
     */
    $app->get('/database/scheme', function () use($app) {
        $userdb = R::readDbFromRequest();
        $by_user = R::readUsernameFromRequest();
        $tempTool = new DbExport($userdb);
         $response['login_id'] = $user['LoginID'];
         $response['username'] = $user['username'];
         $response['group_id'] = $user['GroupID'];
         $response['locale'] = $user['locale'];
         $public_key = $oUser->generateKeys($loginId, $username, $password);
         // field in DB is NULL by default, so let's check if they have been already created before.
         if ($public_key != NULL) {
             $response['public_key'] = $public_key;
             $code = 200;
         } else {
             $response['public_key'] = "could not create or read keys";
             $code = 500;
             Log::write("Could not create or read keys from user", $user['username']);
         }
         //get access level of user (stored in employee table)
         $access_level = $oUser->getAccessLevel($loginId);
         $response['access_level'] = $access_level;
         if ($access_level == NULL) {
             Log::write("*** access_level of user is NULL", $user['username']);
         }
     } else {
         // unknown error occurred
         $response['error'] = true;
         $response['message'] = "An error occurred. Possible duplicate username?";
         $code = 500;
         Log::write("Could not get user from database", $user['username']);
     }
 } else {
     // user credentials are wrong
     $response['error'] = true;
     $response['message'] = 'Login failed. Incorrect credentials';