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
|
<?php
/*
Parametry:
- rodzaj turnieju (4 => teamy, 2 => pary, 1 => ind)
- l. uczestników
- suma WK
- ranga turnieju (0 => K, 1 => Ok, 2 => R, 3 => O, 4 => O*, 5 => O**, 6 => O***, 7 => O****) (opcjonalny, jeśli podano ręczne minPKL i wagę)
- l. rozdań => 40? (opcjonalny, jeśli podano ręczne minPKL i wagę)
- ręczne minPKL za pierwsze (opcjonalny)
- ręczna waga (opcjonalny)
- ręczny współczynnik zawodniczy (opcjonalny)
- ręczne progi (opcjonalne)
{
"type": 2,
"contestants": 20,
"title_sum": 230,
"tournament_rank": 3,
"over39_boards": 0,
"manual": {
"min_points": 50,
"tournament_weight": 50,
"players_coefficient": 0.1,
"points_cutoffs": [[0.1, 0.9], [0.5, 0.0]]
}
}
*/
require_once('api-inc.php');
function run($parameters) {
try {
$versionClasses = array(
'1' => 'ApiPklV1', // RegKlas 2018.11.01
'2' => 'ApiPklV2', // RegKMP 2020.01.01
'_default' => 'ApiPklV1'
);
$version = isset($parameters['version']) ? $parameters['version'] : '_default';
$apiClass = isset($versionClasses[$version]) ? $versionClasses[$version] : $versionClasses['_default'];
$api = new $apiClass($parameters);
if ($parameters['tournament_rank'] == ApiPkl::RANK_KMP) {
$result = $api->calculate_kmp_points();
} else {
$result = $api->calculate_points();
}
return $result;
}
catch (ParametersException $e) {
http_response_code(400);
die(json_encode($e->getMessage()));
}
catch (Exception $e) {
http_response_code(500);
die(json_encode($e->getMessage()));
}
}
header('Content-Type: application/json');
print(json_encode(run($_REQUEST)));
?>
|