E. srv / suscripcion-modifica.php

1<?php
2
3require_once __DIR__ . "/../lib/php/recuperaJson.php";
4require_once __DIR__ . "/../lib/php/devuelveCreated.php";
5require_once __DIR__ . "/../lib/php/devuelveJson.php";
6require_once __DIR__ . "/../lib/php/ProblemDetails.php";
7require_once __DIR__ . "/../lib/php/devuelveProblemDetails.php";
8require_once __DIR__ . "/../lib/php/devuelveErrorInterno.php";
9require_once __DIR__ . "/Bd.php";
10require_once __DIR__ . "/Suscripcion.php";
11require_once __DIR__ . "/suscripcionRecupera.php";
12
13try {
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
skip_previous skip_next