1 | <?php |
2 | |
3 | require_once __DIR__ . "/../lib/php/recuperaJson.php"; |
4 | require_once __DIR__ . "/../lib/php/devuelveCreated.php"; |
5 | require_once __DIR__ . "/../lib/php/devuelveJson.php"; |
6 | require_once __DIR__ . "/../lib/php/ProblemDetails.php"; |
7 | require_once __DIR__ . "/../lib/php/devuelveProblemDetails.php"; |
8 | require_once __DIR__ . "/../lib/php/devuelveErrorInterno.php"; |
9 | require_once __DIR__ . "/Bd.php"; |
10 | require_once __DIR__ . "/Suscripcion.php"; |
11 | require_once __DIR__ . "/suscripcionRecupera.php"; |
12 | |
13 | try { |
14 | |
15 | $objeto = recuperaJson(); |
16 | $modelo = suscripcionRecupera($objeto); |
17 | |
18 | $conexion = Bd::getConexion(); |
19 | |
20 | $statement = $conexion->prepare( |
21 | "SELECT |
22 | SUS_ENDPOINT |
23 | FROM SUSCRIPCION |
24 | WHERE SUS_ENDPOINT = :endpoint" |
25 | ); |
26 | $statement->execute([":endpoint" => $modelo->endpoint]); |
27 | |
28 | if ($statement->fetchColumn() === false) { |
29 | |
30 | $conexion->prepare( |
31 | "INSERT INTO SUSCRIPCION |
32 | (SUS_ENDPOINT, SUS_PUB_KEY, SUS_AUT_TOK, SUS_CONT_ENCOD) |
33 | VALUES |
34 | (:endpoint, :publicKey, :authToken, :contentEncoding)" |
35 | ) |
36 | ->execute([ |
37 | ":endpoint" => $modelo->endpoint, |
38 | ":publicKey" => $modelo->publicKey, |
39 | ":authToken" => $modelo->authToken, |
40 | ":contentEncoding" => $modelo->contentEncoding |
41 | ]); |
42 | |
43 | devuelveCreated("", $modelo); |
44 | } else { |
45 | |
46 | $conexion->prepare( |
47 | "UPDATE SUSCRIPCION |
48 | SET |
49 | SUS_PUB_KEY = :publicKey, |
50 | SUS_AUT_TOK = :authToken, |
51 | SUS_CONT_ENCOD = :contentEncoding |
52 | WHERE SUS_ENDPOINT = :endpoint" |
53 | ) |
54 | ->execute([ |
55 | ":endpoint" => $modelo->endpoint, |
56 | ":publicKey" => $modelo->publicKey, |
57 | ":authToken" => $modelo->authToken, |
58 | ":contentEncoding" => $modelo->contentEncoding |
59 | ]); |
60 | |
61 | devuelveJson($modelo); |
62 | } |
63 | } catch (ProblemDetails $details) { |
64 | |
65 | devuelveProblemDetails($details); |
66 | } catch (Throwable $error) { |
67 | |
68 | devuelveErrorInterno($error); |
69 | } |
70 | |