-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathclient.php
78 lines (70 loc) · 2.47 KB
/
client.php
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
<?php
// clase functiones
require_once './classes/Functions.php';
// log
require_once './classes/Log.php';
// url del servicio
const URL = 'http://localhost/Projects/SOAP/service.php';
// opciones configuracion del cliente
$options = array(
'location' => URL, // uri del servidor
'uri' => URL, // target name space (si tiene)
'trace' => true // para capturar errores
);
try {
//! nuevo objeto cliente
// SoapClient(url_del_WSDL, array_opciones)
$soap_client = new SoapClient(null, $options); // null = no hay wsdl
switch ($_POST['metodo'])
{
case 'obtenerCursos':
//! ejecutar metodo listar todos los cursos
// soapCall(nombreMetodo, nombreMetodo=>parametro)
$response = $soap_client->__soapCall('obtenerCursos', ['obtenerCursos' => '']);
break;
case 'obtenerCurso':
//! ejecutar metodo ver curso por id
// soapCall(nombreMetodo, nombreMetodo=>parametro)
$response = $soap_client->__soapCall('obtenerCurso', ['obtenerCurso' => $_POST['id']]);
break;
case 'nuevoCurso':
//! ejecutar metodo ver curso por id
// soapCall(nombreMetodo, nombreMetodo=>parametro)
$response = $soap_client->__soapCall('nuevoCurso', ['nuevoCurso' => $_POST['nombre']]);
break;
case 'actualizarCurso':
// capturar datos recibidos
$datos = [
'id' => $_POST['id'],
'nombre' => $_POST['nombre']
];
//! ejecutar metodo actualizar curso
// soapCall(nombreMetodo, nombreMetodo=>parametro)
$response = $soap_client->__soapCall('actualizarCurso', ['actualizarCurso' => $datos]);
break;
case 'eliminarCurso':
//! ejecutar metodo ver curso por id
// soapCall(nombreMetodo, nombreMetodo=>parametro)
$response = $soap_client->__soapCall('eliminarCurso', ['eliminarCurso' => $_POST['id']]);
break;
}
// analizar si hubo un error, sino analizar si hay parametro formato, y sino analizar en que formato se muestra (xml - json), y mostrar
echo (isset($response['success'])
? $resp = json_encode($response)
// si no existe formato
: (!isset($_POST['formato'])
? $response
// si existe formato
: (($_POST['formato'] == 'xml')
? $resp = Functions::XML($response)
: $resp = json_encode($response)
)
)
);
//! control de errores
} catch (Exception $e) {
// guardar log (a+, seguir escribiendo sin sobreescribir lo existente)
// Log::saveLog('a+', 'Ocurrio un error! HTTP Status Code: 400 | Method: PUT actualizarCurso');
echo "Error: " . $e->getMessage();
echo "Error: " . $e->getLine();
};