/**
 * przykladowe zabezpieczenie: token w parametrach
 * parametry: /token/
 */

$token = 'lorem_ipsum';
$request = get_request();
$response = array();

if ($request[0] == $token) {
    $response['success'] = true;
    $response['message'] = 'Work';
} else {
    $response['success'] = false;
    $response['error'] = 'Bad token';
}
print(json_encode($response));

/**
 * przykladowe zabezpieczenie: tylko wybrane ip jest akceptowane
 */

$ipAllowed = array('127.0.0.1');

$requestIp = get_request_ip();
$response = array();

if (in_array($requestIp, $ipAllowed)) {
    $response['success'] = true;
    $response['message'] = 'Work';
} else {
    $response['success'] = false;
    $response['error'] = 'Bad Ip';
}
print(json_encode($response));

/**
 * przykladowe zabezpieczenie: tylko na mobile
 */

$device = 'mobile';

$request = get_request_agent();
$response = array();

$requestDevice = $request['device'];

if ($requestDevice['device_type'] == $device) {
    $response['success'] = true;
    $response['message'] = 'Work';
} else {
    $response['success'] = false;
    $response['error'] = 'Bad Device';
}
print(json_encode($response));


/**
 * sprawdzenie czy adres jest w bazie
 * parametry: /base64_encode(email)/
 */

$request = get_request();
$response = array();

$email = base64_decode($request[0]);
if (bind_email($email)) {
    $response['success'] = true;
    $response['message'] = 'email in base';
} else {
    $response['success'] = false;
    $response['message'] = 'no email in base';
}
print(json_encode($response));

/**
 * sprawdzenie czy adres jest w bazie i jaką ma wartość w podanej cesze podanej podczas wywoływania requestu
 * parametry: /base64_encode(email)/prop1/prop2
 */

$request = get_request();
$response = array();

$email = base64_decode($request[0]);
if (bind_email($email)) {
    $response['success'] = true;
    $response['message'] = 'Email in base';
    $response['data'] = array(get_val($request[1]), get_val($request[2]));
} else {
    $response['success'] = false;
    $response['message'] = 'no email in base';
}
print(json_encode($response));

/**
 * Update konkretnej cechy na podanym adresie email
 * parametry: /base64_encode(email)/cecha/wartosc
 */

$request = get_request();
$response = array();

$email = base64_decode($request[0]);
if (bind_email($email)) {
    set_val($request[1], $request[2]);
    $response['success'] = true;
    $response['message'] = 'Updated';
} else {
    $response['success'] = false;
    $response['message'] = 'no email in base';
}
print(json_encode($response));


/**
 * Wysłanie maila transakcyjnego dla adresu + zapis do bazy
 * parametry: /base64_encode(email)/
 */

$request = get_request();
$response = array();

$params = array();
$params["subject"] = "Lorem ipsum";
$params["campaign"] = "Test campaign";

$email = base64_decode($request[0]);
bind_email($email, true);

if (mail_send($email, $params, 'Hello world')) {
    $response['success'] = true;
    $response['message'] = 'mail sent';
} else {
    $response['success'] = false;
    $response['error'] = 'bad request';
}
print(json_encode($response));