<?php

/**
 *  Informatica Eindproject D4p
 *  6in3, Stedelijk Gymnasium Nijmegen
 *  Docent: Hans de Wolf
 *
 *  ==================
 *
 *  Daniel Boutros,
 *  Christiaan Goossens,
 *  Jelmer Hinssen
 */

namespace Inforbank\Application;

use Exception;
use Inforbank\Application\Auth\Middleware;
use Inforbank\Application\Helper\Header;
use Inforbank\Application\Helper\IBAN;
use Inforbank\Application\Helper\Overboekingen;
use Inforbank\Application\Helper\Redirect;
use Inforbank\Application\Helper\Rekeningen;
use Slim\App;

class Overboeking
{
    public function __construct(App $app)
    {
        $app->get('/overboeking', function ($request, $response, $args) {
            $rekeningen = Rekeningen::getCurrentUserRekeningen();
            return $this->renderer->render($response, 'overboeking.phtml', [
                        'header' => Header::getHeaderData(),
                        'rekeningen' => $rekeningen
            ]);
        })->add(new Middleware());

        $app->post('/overboeking', function ($request, $response, $args) {
            $post = $request->getParsedBody();
            $van = $post['van'];
            $naar = $post['naar'];
            $bedrag = $post['bedrag'];
            $omschrijving = $post['omschrijving'];

            try {
                $ibanhelper = new IBAN();
                Overboekingen::createOverboeking($ibanhelper->getIBAN($van), $naar, $bedrag, $omschrijving, "bg");
                return Redirect::create($request, $response, "/rekeningen/$van");
            } catch (Exception $e) {
                return Redirect::create($request, $response, "/overboeking?error=" . $e->getCode() . "");
            }
        })->add(new Middleware());
    }
}
