<?php

require_once 'init.php';
require_once 'boondmanager.php';

$script = isset($_POST['script']) ? $_POST['script'] : '';

$boondmanager = new BoondManager(APP_KEY);

// decoding data sent by boondmanager
$data = $boondmanager->signedRequestDecode($_REQUEST['signedRequest']);

switch($script) {
	// installation api
	case 'install':
	// install script needs an answer in json
	header('Content-Type: application/json');

	// handle first request with installationCode
	if($data && isset($data['installationCode']) && $data['installationCode'] == APP_CODE) {
		exit(json_encode([
			'result' => true
		]));
	}

	// handle second request with appToken
	if($data && isset($data['appToken']) && isset($data['clientToken']) && isset($data['clientName'])) {
		// backup the customer token (for example, in a database)
		file_put_contents('appToken.txt', $data['appToken']);

		exit(json_encode([
			'result' => true
		]));
	}

	else {
		// if something went wrong, return false
		file_put_contents('errors.txt', print_r($data));

		exit(json_encode([
			'result' => true
		]));
	}
	break;

	// uninstall api
	case 'uninstall':
	// install script needs an answer in json
	header('Content-Type: application/json');

	if($data && isset($data['clientToken'])) { //Authorization's confirmation
		// deleting the token
		if(file_exists('appToken.txt')) {
			unlink('appToken.txt');
		}

		exit(json_encode([
			'result' => true
		]));
	}

	exit(json_encode([
		'result' => false
	]));
	break;

	// configuration's view
	case 'configuration':
	require_once("views/configuration.php");
	break;

	// main's view
	default:
	require_once("views/mainview.php");
	break;
}
