/**
 * @author stev leibelt <*****@*****.**>
 * @since 2015-09-07
 */
require __DIR__ . '/../vendor/autoload.php';
use Net\Bazzline\UniqueNumberRepository\Application\Service\ApplicationLocator;
use Net\Bazzline\UniqueNumberRepository\Domain\Model\RepositoryRequest;
use Net\Bazzline\UniqueNumberRepository\Domain\Model\UniqueNumberRequest;
use Silex\Application;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
const VERSION = '1.0.0';
require_once __DIR__ . '/../configuration/server.local.php';
//begin of dependencies
$application = new Application();
$locator = new ApplicationLocator();
//end of dependencies
//begin of overriding default functionality
$application->before(function (Request $request) use($application, $token) {
    //begin of only allow requests with valid authorization token
    $isNotAuthorized = $request->headers->get('authorization') !== $token;
    if ($isNotAuthorized) {
        $application->abort(401);
    }
    //end of only allow requests with valid authorization token
    //begin of decoding json request data
    $isJsonRequest = 0 === strpos($request->headers->get('Content-Type'), 'application/json');
    if ($isJsonRequest) {
        $data = json_decode($request->getContent(), true);
        $request->request->replace(is_array($data) ? $data : array());
    }
 /**
  * @return NumberEnumerator
  */
 public function create()
 {
     return new NumberEnumerator($this->locator->getUniqueNumberStorage());
 }