1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
|
<?php
require_once $_SERVER['DOCUMENT_ROOT'] . "/Private/SessionManager.php"; global $_PROFILE;
/**
* Encode data to Base64URL
* @param string $data
* @return boolean|string
*/
function base64url_encode($data)
{
// First of all you should encode $data to Base64 string
$b64 = base64_encode($data);
// Make sure you get a valid result, otherwise, return FALSE, as the base64_encode() function do
if ($b64 === false) {
return false;
}
// Convert Base64 to Base64URL by replacing “+” with “-” and “/” with “_”
$url = strtr($b64, '+/', '-_');
// Remove padding character from the end of line and return the Base64URL result
return rtrim($url, '=');
}
/**
* Decode data from Base64URL
* @param string $data
* @param boolean $strict
* @return boolean|string
*/
function base64url_decode($data, $strict = false)
{
// Convert Base64URL to Base64 by replacing “-” with “+” and “_” with “/”
$b64 = strtr($data, '-_', '+/');
// Decode Base64 string and return the original data
return base64_decode($b64, $strict);
}
if (!isset($_GET['Currency']) || !isset($_GET['Amount']) || !is_numeric($_GET['Amount']) || !isset($_GET['Description']) || !isset($_GET['Operation'])) {
die();
}
$list = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/Private/Data/Transactions.json"), true);
$exchangeRate = (float)file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/Private/ExchangeRate.txt");
$eurToGbp = $exchangeRate;
$gbpToEur = 1 / $eurToGbp;
$list = array_reverse($list);
if ($_GET['Currency'] === "€") {
$list[] = [
'author' => $_PROFILE['id'],
'type' => $_GET['Operation'] === "+" || $_GET['Operation'] === " " ? "gain" : "pay",
'amount' => [
'eur' => (float)$_GET['Amount'],
'gbp' => (float)$_GET['Amount'] * $eurToGbp,
'original' => 'eur'
],
'date' => date("c"),
'description' => base64url_decode($_GET['Description'])
];
} else {
$list[] = [
'author' => $_PROFILE['id'],
'type' => $_GET['Operation'] === "+" || $_GET['Operation'] === " " ? "gain" : "pay",
'amount' => [
'eur' => (float)$_GET['Amount'] * $gbpToEur,
'gbp' => (float)$_GET['Amount'],
'original' => 'gbp'
],
'date' => date("c"),
'description' => base64url_decode($_GET['Description'])
];
}
$list = array_reverse($list);
file_put_contents($_SERVER['DOCUMENT_ROOT'] . "/Private/Data/Transactions.json", json_encode($list));
|