siar-client 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +19 -0
- package/dist/client/data/DataService.d.ts +72 -0
- package/dist/client/data/DataService.d.ts.map +1 -0
- package/dist/client/data/DataService.js +136 -0
- package/dist/client/data/DataService.js.map +1 -0
- package/dist/client/information/InformationService.d.ts +52 -0
- package/dist/client/information/InformationService.d.ts.map +1 -0
- package/dist/client/information/InformationService.js +126 -0
- package/dist/client/information/InformationService.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -0
- package/dist/internal/Models.d.ts +10 -0
- package/dist/internal/Models.d.ts.map +1 -0
- package/dist/internal/Models.js +2 -0
- package/dist/internal/Models.js.map +1 -0
- package/dist/internal/data/Models.d.ts +179 -0
- package/dist/internal/data/Models.d.ts.map +1 -0
- package/dist/internal/data/Models.js +2 -0
- package/dist/internal/data/Models.js.map +1 -0
- package/dist/internal/information/Models.d.ts +69 -0
- package/dist/internal/information/Models.d.ts.map +1 -0
- package/dist/internal/information/Models.js +2 -0
- package/dist/internal/information/Models.js.map +1 -0
- package/dist/mappers/Mappers.d.ts +37 -0
- package/dist/mappers/Mappers.d.ts.map +1 -0
- package/dist/mappers/Mappers.js +160 -0
- package/dist/mappers/Mappers.js.map +1 -0
- package/dist/public/Models.d.ts +5 -0
- package/dist/public/Models.d.ts.map +1 -0
- package/dist/public/Models.js +2 -0
- package/dist/public/Models.js.map +1 -0
- package/dist/public/SIARClient.d.ts +55 -0
- package/dist/public/SIARClient.d.ts.map +1 -0
- package/dist/public/SIARClient.js +73 -0
- package/dist/public/SIARClient.js.map +1 -0
- package/dist/public/data/Models.d.ts +196 -0
- package/dist/public/data/Models.d.ts.map +1 -0
- package/dist/public/data/Models.js +20 -0
- package/dist/public/data/Models.js.map +1 -0
- package/dist/public/information/Models.d.ts +78 -0
- package/dist/public/information/Models.d.ts.map +1 -0
- package/dist/public/information/Models.js +11 -0
- package/dist/public/information/Models.js.map +1 -0
- package/package.json +40 -0
package/README.md
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# siar-client
|
|
2
|
+
|
|
3
|
+
## What is this?
|
|
4
|
+
|
|
5
|
+
A client for the [SIAR platform](https://servicio.mapa.gob.es/websiar/Inicio.aspx) to ease the use of it written in typescript.
|
|
6
|
+
|
|
7
|
+
# How do I install it?
|
|
8
|
+
|
|
9
|
+
Working on it...
|
|
10
|
+
|
|
11
|
+
It is planned to provide it through npm.
|
|
12
|
+
|
|
13
|
+
# How do I use it?
|
|
14
|
+
|
|
15
|
+
Working on it...
|
|
16
|
+
|
|
17
|
+
# What’s supported?
|
|
18
|
+
|
|
19
|
+
Working on it...
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { Scope, type HourlyData, type DailyData, type WeeklyData, type MonthlyData } from "../../public/data/Models.js";
|
|
2
|
+
import type { GeneralResponse } from "../../public/Models.js";
|
|
3
|
+
/**
|
|
4
|
+
* Parámetros para realizar una petición de datos
|
|
5
|
+
*/
|
|
6
|
+
export interface DataPetitionParams {
|
|
7
|
+
/** Identificadores de ámbito (pueden ser uno o varios) */
|
|
8
|
+
ids: string[];
|
|
9
|
+
/** Fecha inicial en formato AAAA-MM-DD */
|
|
10
|
+
startDate: string;
|
|
11
|
+
/** Fecha final en formato AAAA-MM-DD */
|
|
12
|
+
endDate: string;
|
|
13
|
+
/** OPCIONAL: Fecha de última modificación en formato AAAA-MM-DD */
|
|
14
|
+
lastModifiedDate?: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Servicio para realizar peticiones de datos a la Web API SIAR
|
|
18
|
+
*/
|
|
19
|
+
export declare class DataPetitionService {
|
|
20
|
+
private baseUrl;
|
|
21
|
+
private apiKey;
|
|
22
|
+
/**
|
|
23
|
+
* Constructor del servicio
|
|
24
|
+
* @param apiKey Clave de cliente API de 50 caracteres
|
|
25
|
+
*/
|
|
26
|
+
constructor(apiKey: string);
|
|
27
|
+
/**
|
|
28
|
+
* Construye la URL completa para una petición de datos
|
|
29
|
+
* @param tipoDatos Tipo de datos a solicitar
|
|
30
|
+
* @param ambito Ámbito de la petición
|
|
31
|
+
* @param params Parámetros de la petición
|
|
32
|
+
* @returns URL completa para la petición
|
|
33
|
+
*/
|
|
34
|
+
private buildUrl;
|
|
35
|
+
/**
|
|
36
|
+
* Realiza una petición de datos a la API
|
|
37
|
+
* @param tipoDatos Tipo de datos a solicitar
|
|
38
|
+
* @param ambito Ámbito de la petición
|
|
39
|
+
* @param params Parámetros de la petición
|
|
40
|
+
* @returns Promesa con la respuesta de la API
|
|
41
|
+
*/
|
|
42
|
+
private fetchData;
|
|
43
|
+
/**
|
|
44
|
+
* Obtiene datos horarios (se registra cada media hora, 48 datos por día)
|
|
45
|
+
* @param scope Ámbito de la petición (CCAA, Provincia, Estacion)
|
|
46
|
+
* @param params Parámetros de la petición
|
|
47
|
+
* @returns Promesa con los datos horarios
|
|
48
|
+
*/
|
|
49
|
+
fetchHourlyData(scope: Scope, params: DataPetitionParams): Promise<GeneralResponse<HourlyData[]>>;
|
|
50
|
+
/**
|
|
51
|
+
* Obtiene datos diarios
|
|
52
|
+
* @param ambito Ámbito de la petición (CCAA, Provincia, Estacion)
|
|
53
|
+
* @param params Parámetros de la petición
|
|
54
|
+
* @returns Promesa con los datos diarios
|
|
55
|
+
*/
|
|
56
|
+
fetchDailyData(ambito: Scope, params: DataPetitionParams): Promise<GeneralResponse<DailyData[]>>;
|
|
57
|
+
/**
|
|
58
|
+
* Obtiene datos semanales
|
|
59
|
+
* @param ambito Ámbito de la petición (CCAA, Provincia, Estacion)
|
|
60
|
+
* @param params Parámetros de la petición
|
|
61
|
+
* @returns Promesa con los datos semanales
|
|
62
|
+
*/
|
|
63
|
+
fetchWeeklyData(ambito: Scope, params: DataPetitionParams): Promise<GeneralResponse<WeeklyData[]>>;
|
|
64
|
+
/**
|
|
65
|
+
* Obtiene datos mensuales
|
|
66
|
+
* @param ambito Ámbito de la petición (CCAA, Provincia, Estacion)
|
|
67
|
+
* @param params Parámetros de la petición
|
|
68
|
+
* @returns Promesa con los datos mensuales
|
|
69
|
+
*/
|
|
70
|
+
fetchMonthlyData(ambito: Scope, params: DataPetitionParams): Promise<GeneralResponse<MonthlyData[]>>;
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=DataService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataService.d.ts","sourceRoot":"","sources":["../../../src/client/data/DataService.ts"],"names":[],"mappings":"AAaA,OAAO,EACL,KAAK,EAEL,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,WAAW,EACjB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,0DAA0D;IAC1D,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,0CAA0C;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,mEAAmE;IACnE,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,OAAO,CACyC;IACxD,OAAO,CAAC,MAAM,CAAS;IAEvB;;;OAGG;gBACS,MAAM,EAAE,MAAM;IAI1B;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ;IA2BhB;;;;;;OAMG;YACW,SAAS;IAuCvB;;;;;OAKG;IACG,eAAe,CACnB,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;IAezC;;;;;OAKG;IACG,cAAc,CAClB,MAAM,EAAE,KAAK,EACb,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;IAexC;;;;;OAKG;IACG,eAAe,CACnB,MAAM,EAAE,KAAK,EACb,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;IAezC;;;;;OAKG;IACG,gBAAgB,CACpB,MAAM,EAAE,KAAK,EACb,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC,CAAC;CAc3C"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import { mapDatoHorarioToHourlyData, mapDatoDiarioToDailyData, mapDatoSemanalToWeeklyData, mapDatoMensualToMonthlyData, } from "../../mappers/Mappers.js";
|
|
2
|
+
import { Scope, DataType, } from "../../public/data/Models.js";
|
|
3
|
+
/**
|
|
4
|
+
* Servicio para realizar peticiones de datos a la Web API SIAR
|
|
5
|
+
*/
|
|
6
|
+
export class DataPetitionService {
|
|
7
|
+
baseUrl = "https://servicio.mapama.gob.es/apisiar/API/v1/Datos";
|
|
8
|
+
apiKey;
|
|
9
|
+
/**
|
|
10
|
+
* Constructor del servicio
|
|
11
|
+
* @param apiKey Clave de cliente API de 50 caracteres
|
|
12
|
+
*/
|
|
13
|
+
constructor(apiKey) {
|
|
14
|
+
this.apiKey = apiKey;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Construye la URL completa para una petición de datos
|
|
18
|
+
* @param tipoDatos Tipo de datos a solicitar
|
|
19
|
+
* @param ambito Ámbito de la petición
|
|
20
|
+
* @param params Parámetros de la petición
|
|
21
|
+
* @returns URL completa para la petición
|
|
22
|
+
*/
|
|
23
|
+
buildUrl(tipoDatos, ambito, params) {
|
|
24
|
+
const { ids, startDate, endDate, lastModifiedDate } = params;
|
|
25
|
+
// Construir la URL base con tipo de datos y ámbito
|
|
26
|
+
let url = `${this.baseUrl}/${tipoDatos}/${ambito}?`;
|
|
27
|
+
// Agregar los identificadores
|
|
28
|
+
const idParams = ids.map((id) => `Id=${encodeURIComponent(id)}`).join("&");
|
|
29
|
+
url += idParams;
|
|
30
|
+
// Agregar fechas y clave API
|
|
31
|
+
url += `&FechaInicial=${startDate}`;
|
|
32
|
+
url += `&FechaFinal=${endDate}`;
|
|
33
|
+
url += `&ClaveAPI=${this.apiKey}`;
|
|
34
|
+
// Agregar fecha de última modificación si está presente
|
|
35
|
+
if (lastModifiedDate) {
|
|
36
|
+
url += `&FechaUltModificacion=${lastModifiedDate}`;
|
|
37
|
+
}
|
|
38
|
+
return url;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Realiza una petición de datos a la API
|
|
42
|
+
* @param tipoDatos Tipo de datos a solicitar
|
|
43
|
+
* @param ambito Ámbito de la petición
|
|
44
|
+
* @param params Parámetros de la petición
|
|
45
|
+
* @returns Promesa con la respuesta de la API
|
|
46
|
+
*/
|
|
47
|
+
async fetchData(tipoDatos, ambito, params) {
|
|
48
|
+
const url = this.buildUrl(tipoDatos, ambito, params);
|
|
49
|
+
try {
|
|
50
|
+
const response = await fetch(url, {
|
|
51
|
+
method: "GET",
|
|
52
|
+
headers: {
|
|
53
|
+
Accept: "application/json",
|
|
54
|
+
},
|
|
55
|
+
});
|
|
56
|
+
if (!response.ok) {
|
|
57
|
+
return {
|
|
58
|
+
MensajeRespuesta: null,
|
|
59
|
+
error: {
|
|
60
|
+
type: "http",
|
|
61
|
+
statusCode: response.status,
|
|
62
|
+
details: `HTTP error! status: ${response.status}`,
|
|
63
|
+
},
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
const data = await response.json();
|
|
67
|
+
return data;
|
|
68
|
+
}
|
|
69
|
+
catch (error) {
|
|
70
|
+
return {
|
|
71
|
+
MensajeRespuesta: null,
|
|
72
|
+
error: {
|
|
73
|
+
type: error instanceof TypeError ? "network" : "parse",
|
|
74
|
+
details: error instanceof Error ? error.message : String(error),
|
|
75
|
+
},
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Obtiene datos horarios (se registra cada media hora, 48 datos por día)
|
|
81
|
+
* @param scope Ámbito de la petición (CCAA, Provincia, Estacion)
|
|
82
|
+
* @param params Parámetros de la petición
|
|
83
|
+
* @returns Promesa con los datos horarios
|
|
84
|
+
*/
|
|
85
|
+
async fetchHourlyData(scope, params) {
|
|
86
|
+
const response = await this.fetchData(DataType.Hourly, scope, params);
|
|
87
|
+
const mappedData = response.Datos?.map(mapDatoHorarioToHourlyData) ?? [];
|
|
88
|
+
return {
|
|
89
|
+
data: mappedData,
|
|
90
|
+
message: response.MensajeRespuesta,
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Obtiene datos diarios
|
|
95
|
+
* @param ambito Ámbito de la petición (CCAA, Provincia, Estacion)
|
|
96
|
+
* @param params Parámetros de la petición
|
|
97
|
+
* @returns Promesa con los datos diarios
|
|
98
|
+
*/
|
|
99
|
+
async fetchDailyData(ambito, params) {
|
|
100
|
+
const response = await this.fetchData(DataType.Daily, ambito, params);
|
|
101
|
+
const mappedData = response.Datos?.map(mapDatoDiarioToDailyData) ?? [];
|
|
102
|
+
return {
|
|
103
|
+
data: mappedData,
|
|
104
|
+
message: response.MensajeRespuesta,
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Obtiene datos semanales
|
|
109
|
+
* @param ambito Ámbito de la petición (CCAA, Provincia, Estacion)
|
|
110
|
+
* @param params Parámetros de la petición
|
|
111
|
+
* @returns Promesa con los datos semanales
|
|
112
|
+
*/
|
|
113
|
+
async fetchWeeklyData(ambito, params) {
|
|
114
|
+
const response = await this.fetchData(DataType.Weekly, ambito, params);
|
|
115
|
+
const mappedData = response.Datos?.map(mapDatoSemanalToWeeklyData) ?? [];
|
|
116
|
+
return {
|
|
117
|
+
data: mappedData,
|
|
118
|
+
message: response.MensajeRespuesta,
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Obtiene datos mensuales
|
|
123
|
+
* @param ambito Ámbito de la petición (CCAA, Provincia, Estacion)
|
|
124
|
+
* @param params Parámetros de la petición
|
|
125
|
+
* @returns Promesa con los datos mensuales
|
|
126
|
+
*/
|
|
127
|
+
async fetchMonthlyData(ambito, params) {
|
|
128
|
+
const response = await this.fetchData(DataType.Monthly, ambito, params);
|
|
129
|
+
const mappedData = response.Datos?.map(mapDatoMensualToMonthlyData) ?? [];
|
|
130
|
+
return {
|
|
131
|
+
data: mappedData,
|
|
132
|
+
message: response.MensajeRespuesta,
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
//# sourceMappingURL=DataService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataService.js","sourceRoot":"","sources":["../../../src/client/data/DataService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { type AutonomousCommunity, type Province, type Station, type AccessInformation } from "../../public/information/Models.js";
|
|
2
|
+
import type { GeneralResponse } from "../../public/Models.js";
|
|
3
|
+
/**
|
|
4
|
+
* Servicio para obtener información de permisos y accesos en la Web API SIAR
|
|
5
|
+
*/
|
|
6
|
+
export declare class InformationService {
|
|
7
|
+
private baseUrl;
|
|
8
|
+
private apiKey;
|
|
9
|
+
/**
|
|
10
|
+
* Constructor del servicio
|
|
11
|
+
* @param apiKey Clave de cliente API de 50 caracteres
|
|
12
|
+
*/
|
|
13
|
+
constructor(apiKey: string);
|
|
14
|
+
/**
|
|
15
|
+
* Construye la URL completa para una petición de información
|
|
16
|
+
* @param tipoInformacion Tipo de información a solicitar
|
|
17
|
+
* @returns URL completa para la petición
|
|
18
|
+
*/
|
|
19
|
+
private buildUrl;
|
|
20
|
+
/**
|
|
21
|
+
* Realiza una petición de información a la API
|
|
22
|
+
* @param tipoInformacion Tipo de información a solicitar
|
|
23
|
+
* @returns Promesa con la respuesta de la API
|
|
24
|
+
*/
|
|
25
|
+
private fetchInformation;
|
|
26
|
+
/**
|
|
27
|
+
* Obtiene los identificadores y descripciones de las comunidades autónomas
|
|
28
|
+
* sobre cuyos datos tiene autorización el cliente
|
|
29
|
+
* @returns Promesa con la lista de comunidades autónomas
|
|
30
|
+
*/
|
|
31
|
+
fetchAutonomousCommunities(): Promise<GeneralResponse<AutonomousCommunity[]>>;
|
|
32
|
+
/**
|
|
33
|
+
* Obtiene los identificadores y descripciones de las provincias
|
|
34
|
+
* sobre cuyos datos tiene autorización el cliente
|
|
35
|
+
* @returns Promesa con la lista de provincias
|
|
36
|
+
*/
|
|
37
|
+
fetchProvinces(): Promise<GeneralResponse<Province[]>>;
|
|
38
|
+
/**
|
|
39
|
+
* Obtiene los identificadores y descripciones de las estaciones
|
|
40
|
+
* sobre cuyos datos tiene autorización el cliente
|
|
41
|
+
* @returns Promesa con la lista de estaciones
|
|
42
|
+
*/
|
|
43
|
+
fetchStations(): Promise<GeneralResponse<Station[]>>;
|
|
44
|
+
/**
|
|
45
|
+
* Obtiene información acerca de las limitaciones en el número de accesos
|
|
46
|
+
* máximos a realizar por minuto y por día así como la cifra real de accesos
|
|
47
|
+
* realizados por el cliente
|
|
48
|
+
* @returns Promesa con la información de accesos
|
|
49
|
+
*/
|
|
50
|
+
fetchAccessData(): Promise<GeneralResponse<AccessInformation>>;
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=InformationService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InformationService.d.ts","sourceRoot":"","sources":["../../../src/client/information/InformationService.ts"],"names":[],"mappings":"AAaA,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,QAAQ,EACb,KAAK,OAAO,EACZ,KAAK,iBAAiB,EACvB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D;;GAEG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,OAAO,CACwC;IACvD,OAAO,CAAC,MAAM,CAAS;IAEvB;;;OAGG;gBACS,MAAM,EAAE,MAAM;IAI1B;;;;OAIG;IACH,OAAO,CAAC,QAAQ;IAIhB;;;;OAIG;YACW,gBAAgB;IAsC9B;;;;OAIG;IACG,0BAA0B,IAAI,OAAO,CACzC,eAAe,CAAC,mBAAmB,EAAE,CAAC,CACvC;IAWD;;;;OAIG;IACG,cAAc,IAAI,OAAO,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAC;IAa5D;;;;OAIG;IACG,aAAa,IAAI,OAAO,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC;IAa1D;;;;;OAKG;IACG,eAAe,IAAI,OAAO,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC;CAuBrE"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { mapCCAA, mapProvincia, mapEstacion, mapInformacionAccesos, } from "../../mappers/Mappers.js";
|
|
2
|
+
import { TipoInformacion, } from "../../public/information/Models.js";
|
|
3
|
+
/**
|
|
4
|
+
* Servicio para obtener información de permisos y accesos en la Web API SIAR
|
|
5
|
+
*/
|
|
6
|
+
export class InformationService {
|
|
7
|
+
baseUrl = "https://servicio.mapama.gob.es/apisiar/API/v1/Info";
|
|
8
|
+
apiKey;
|
|
9
|
+
/**
|
|
10
|
+
* Constructor del servicio
|
|
11
|
+
* @param apiKey Clave de cliente API de 50 caracteres
|
|
12
|
+
*/
|
|
13
|
+
constructor(apiKey) {
|
|
14
|
+
this.apiKey = apiKey;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Construye la URL completa para una petición de información
|
|
18
|
+
* @param tipoInformacion Tipo de información a solicitar
|
|
19
|
+
* @returns URL completa para la petición
|
|
20
|
+
*/
|
|
21
|
+
buildUrl(tipoInformacion) {
|
|
22
|
+
return `${this.baseUrl}/${tipoInformacion}?ClaveAPI=${this.apiKey}`;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Realiza una petición de información a la API
|
|
26
|
+
* @param tipoInformacion Tipo de información a solicitar
|
|
27
|
+
* @returns Promesa con la respuesta de la API
|
|
28
|
+
*/
|
|
29
|
+
async fetchInformation(tipoInformacion) {
|
|
30
|
+
const url = this.buildUrl(tipoInformacion);
|
|
31
|
+
try {
|
|
32
|
+
const response = await fetch(url, {
|
|
33
|
+
method: "GET",
|
|
34
|
+
headers: {
|
|
35
|
+
Accept: "application/json",
|
|
36
|
+
},
|
|
37
|
+
});
|
|
38
|
+
if (!response.ok) {
|
|
39
|
+
return {
|
|
40
|
+
MensajeRespuesta: null,
|
|
41
|
+
error: {
|
|
42
|
+
type: "http",
|
|
43
|
+
statusCode: response.status,
|
|
44
|
+
details: `HTTP error! status: ${response.status}`,
|
|
45
|
+
},
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
const data = await response.json();
|
|
49
|
+
return data;
|
|
50
|
+
}
|
|
51
|
+
catch (error) {
|
|
52
|
+
return {
|
|
53
|
+
MensajeRespuesta: null,
|
|
54
|
+
error: {
|
|
55
|
+
type: error instanceof TypeError ? "network" : "parse",
|
|
56
|
+
details: error instanceof Error ? error.message : String(error),
|
|
57
|
+
},
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Obtiene los identificadores y descripciones de las comunidades autónomas
|
|
63
|
+
* sobre cuyos datos tiene autorización el cliente
|
|
64
|
+
* @returns Promesa con la lista de comunidades autónomas
|
|
65
|
+
*/
|
|
66
|
+
async fetchAutonomousCommunities() {
|
|
67
|
+
const response = await this.fetchInformation(TipoInformacion.CCAA);
|
|
68
|
+
const mappedData = response.Datos?.map(mapCCAA) ?? [];
|
|
69
|
+
return {
|
|
70
|
+
data: mappedData,
|
|
71
|
+
message: response.MensajeRespuesta,
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Obtiene los identificadores y descripciones de las provincias
|
|
76
|
+
* sobre cuyos datos tiene autorización el cliente
|
|
77
|
+
* @returns Promesa con la lista de provincias
|
|
78
|
+
*/
|
|
79
|
+
async fetchProvinces() {
|
|
80
|
+
const response = await this.fetchInformation(TipoInformacion.Provincias);
|
|
81
|
+
const mappedData = response.Datos?.map(mapProvincia) ?? [];
|
|
82
|
+
return {
|
|
83
|
+
data: mappedData,
|
|
84
|
+
message: response.MensajeRespuesta,
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Obtiene los identificadores y descripciones de las estaciones
|
|
89
|
+
* sobre cuyos datos tiene autorización el cliente
|
|
90
|
+
* @returns Promesa con la lista de estaciones
|
|
91
|
+
*/
|
|
92
|
+
async fetchStations() {
|
|
93
|
+
const response = await this.fetchInformation(TipoInformacion.Estaciones);
|
|
94
|
+
const mappedData = response.Datos?.map(mapEstacion) ?? [];
|
|
95
|
+
return {
|
|
96
|
+
data: mappedData,
|
|
97
|
+
message: response.MensajeRespuesta,
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Obtiene información acerca de las limitaciones en el número de accesos
|
|
102
|
+
* máximos a realizar por minuto y por día así como la cifra real de accesos
|
|
103
|
+
* realizados por el cliente
|
|
104
|
+
* @returns Promesa con la información de accesos
|
|
105
|
+
*/
|
|
106
|
+
async fetchAccessData() {
|
|
107
|
+
const response = await this.fetchInformation(TipoInformacion.Accesos);
|
|
108
|
+
const mappedData = response.Datos
|
|
109
|
+
? mapInformacionAccesos(response.Datos)
|
|
110
|
+
: {
|
|
111
|
+
accessesCurrentMinute: 0,
|
|
112
|
+
maxAccessesPerMinute: 0,
|
|
113
|
+
accessesCurrentDay: 0,
|
|
114
|
+
maxAccessesPerDay: 0,
|
|
115
|
+
recordsCurrentMinute: 0,
|
|
116
|
+
maxRecordsPerMinute: 0,
|
|
117
|
+
recordsCurrentDay: 0,
|
|
118
|
+
maxRecordsPerDay: 0,
|
|
119
|
+
};
|
|
120
|
+
return {
|
|
121
|
+
data: mappedData,
|
|
122
|
+
message: response.MensajeRespuesta,
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=InformationService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InformationService.js","sourceRoot":"","sources":["../../../src/client/information/InformationService.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,UAAU,EACV,SAAS,EACT,UAAU,EACV,WAAW,GACZ,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Models.d.ts","sourceRoot":"","sources":["../../src/internal/Models.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB,CAAC,CAAC;IACjC,KAAK,CAAC,EAAE,CAAC,CAAC;IACV,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;QACnC,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Models.js","sourceRoot":"","sources":["../../src/internal/Models.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Datos horarios - Se registra cada media hora (48 datos por día)
|
|
3
|
+
*/
|
|
4
|
+
export interface DatoHorario {
|
|
5
|
+
/** Hora y minutos (0-30) */
|
|
6
|
+
HoraMin: number;
|
|
7
|
+
/** Temperatura media en °C */
|
|
8
|
+
TempMedia: number;
|
|
9
|
+
/** Humedad media en % */
|
|
10
|
+
HumedadMedia: number;
|
|
11
|
+
/** Velocidad del viento en m/s */
|
|
12
|
+
VelViento: number;
|
|
13
|
+
/** Dirección del viento en grados */
|
|
14
|
+
DirViento: number;
|
|
15
|
+
/** Radiación solar en MJ/m² */
|
|
16
|
+
Radiacion: number;
|
|
17
|
+
/** Precipitación en mm */
|
|
18
|
+
Precipitacion: number;
|
|
19
|
+
/** Temperatura del suelo 1 en °C (puede ser null) */
|
|
20
|
+
TempSuelo1: number | null;
|
|
21
|
+
/** Temperatura del suelo 2 en °C (puede ser null) */
|
|
22
|
+
TempSuelo2: number | null;
|
|
23
|
+
/** Código de la estación */
|
|
24
|
+
Estacion: string;
|
|
25
|
+
/** Fecha del dato (formato ISO 8601) */
|
|
26
|
+
Fecha: string;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Datos diarios
|
|
30
|
+
*/
|
|
31
|
+
export interface DatoDiario {
|
|
32
|
+
/** Temperatura media en °C */
|
|
33
|
+
TempMedia: number;
|
|
34
|
+
/** Temperatura máxima en °C */
|
|
35
|
+
TempMax: number;
|
|
36
|
+
/** Hora y minuto de la temperatura máxima (formato HHMM) */
|
|
37
|
+
HorMinTempMax: number;
|
|
38
|
+
/** Temperatura mínima en °C */
|
|
39
|
+
TempMin: number;
|
|
40
|
+
/** Hora y minuto de la temperatura mínima (formato HHMM) */
|
|
41
|
+
HorMinTempMin: number;
|
|
42
|
+
/** Humedad media en % */
|
|
43
|
+
HumedadMedia: number;
|
|
44
|
+
/** Humedad máxima en % */
|
|
45
|
+
HumedadMax: number;
|
|
46
|
+
/** Hora y minuto de la humedad máxima (formato HHMM) */
|
|
47
|
+
HorMinHumMax: number;
|
|
48
|
+
/** Humedad mínima en % */
|
|
49
|
+
HumedadMin: number;
|
|
50
|
+
/** Hora y minuto de la humedad mínima (formato HHMM) */
|
|
51
|
+
HorMinHumMin: number;
|
|
52
|
+
/** Velocidad media del viento en m/s */
|
|
53
|
+
VelViento: number;
|
|
54
|
+
/** Dirección media del viento en grados */
|
|
55
|
+
DirViento: number;
|
|
56
|
+
/** Velocidad máxima del viento en m/s */
|
|
57
|
+
VelVientoMax: number;
|
|
58
|
+
/** Hora y minuto de la velocidad máxima del viento (formato HHMM) */
|
|
59
|
+
HorMinVelMax: number;
|
|
60
|
+
/** Dirección del viento a velocidad máxima en grados */
|
|
61
|
+
DirVientoVelMax: number;
|
|
62
|
+
/** Radiación solar en MJ/m² */
|
|
63
|
+
Radiacion: number;
|
|
64
|
+
/** Precipitación en mm */
|
|
65
|
+
Precipitacion: number;
|
|
66
|
+
/** Temperatura del suelo 1 en °C (puede ser null) */
|
|
67
|
+
TempSuelo1: number | null;
|
|
68
|
+
/** Temperatura del suelo 2 en °C (puede ser null) */
|
|
69
|
+
TempSuelo2: number | null;
|
|
70
|
+
/** Evapotranspiración de referencia método Penman-Monteith en mm */
|
|
71
|
+
EtPMon: number;
|
|
72
|
+
/** Precipitación efectiva método Penman-Monteith en mm */
|
|
73
|
+
PePMon: number;
|
|
74
|
+
/** Código de la estación */
|
|
75
|
+
Estacion: string;
|
|
76
|
+
/** Fecha del dato (formato ISO 8601) */
|
|
77
|
+
Fecha: string;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Datos semanales
|
|
81
|
+
*/
|
|
82
|
+
export interface DatoSemanal {
|
|
83
|
+
/** Año */
|
|
84
|
+
Año: number;
|
|
85
|
+
/** Número de semana */
|
|
86
|
+
Semana: number;
|
|
87
|
+
/** Temperatura media en °C */
|
|
88
|
+
TempMedia: number;
|
|
89
|
+
/** Temperatura máxima en °C */
|
|
90
|
+
TempMax: number;
|
|
91
|
+
/** Día, hora y minuto de la temperatura máxima (formato ISO 8601) */
|
|
92
|
+
DiaHorMinTempMax: string;
|
|
93
|
+
/** Temperatura mínima en °C */
|
|
94
|
+
TempMin: number;
|
|
95
|
+
/** Día, hora y minuto de la temperatura mínima (formato ISO 8601) */
|
|
96
|
+
DiaHorMinTempMin: string;
|
|
97
|
+
/** Humedad media en % */
|
|
98
|
+
HumedadMedia: number;
|
|
99
|
+
/** Humedad máxima en % */
|
|
100
|
+
HumedadMax: number;
|
|
101
|
+
/** Día, hora y minuto de la humedad máxima (formato ISO 8601) */
|
|
102
|
+
DiaHorMinHumMax: string;
|
|
103
|
+
/** Humedad mínima en % */
|
|
104
|
+
HumedadMin: number;
|
|
105
|
+
/** Día, hora y minuto de la humedad mínima (formato ISO 8601) */
|
|
106
|
+
DiaHorMinHumMin: string;
|
|
107
|
+
/** Velocidad media del viento en m/s */
|
|
108
|
+
VelViento: number;
|
|
109
|
+
/** Dirección media del viento en grados */
|
|
110
|
+
DirViento: number;
|
|
111
|
+
/** Velocidad máxima del viento en m/s */
|
|
112
|
+
VelVientoMax: number;
|
|
113
|
+
/** Día, hora y minuto de la velocidad máxima del viento (formato ISO 8601) */
|
|
114
|
+
DiaHorMinVelMax: string;
|
|
115
|
+
/** Dirección del viento a velocidad máxima en grados */
|
|
116
|
+
DirVientoVelMax: number;
|
|
117
|
+
/** Radiación solar en MJ/m² */
|
|
118
|
+
Radiacion: number;
|
|
119
|
+
/** Precipitación en mm */
|
|
120
|
+
Precipitacion: number;
|
|
121
|
+
/** Evapotranspiración de referencia método Penman-Monteith en mm */
|
|
122
|
+
EtPMon: number;
|
|
123
|
+
/** Precipitación efectiva método Penman-Monteith en mm */
|
|
124
|
+
PePMon: number;
|
|
125
|
+
/** Código de la estación */
|
|
126
|
+
Estacion: string;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Datos mensuales
|
|
130
|
+
*/
|
|
131
|
+
export interface DatoMensual {
|
|
132
|
+
/** Año */
|
|
133
|
+
Año: number;
|
|
134
|
+
/** Mes (1-12) */
|
|
135
|
+
Mes: number;
|
|
136
|
+
/** Número de días del mes */
|
|
137
|
+
NumDias: number;
|
|
138
|
+
/** Temperatura media en °C */
|
|
139
|
+
TempMedia: number;
|
|
140
|
+
/** Temperatura máxima en °C */
|
|
141
|
+
TempMax: number;
|
|
142
|
+
/** Día, hora y minuto de la temperatura máxima (formato ISO 8601) */
|
|
143
|
+
DiaHorMinTempMax: string;
|
|
144
|
+
/** Temperatura mínima en °C */
|
|
145
|
+
TempMin: number;
|
|
146
|
+
/** Día, hora y minuto de la temperatura mínima (formato ISO 8601) */
|
|
147
|
+
DiaHorMinTempMin: string;
|
|
148
|
+
/** Humedad media en % */
|
|
149
|
+
HumedadMedia: number;
|
|
150
|
+
/** Humedad máxima en % */
|
|
151
|
+
HumedadMax: number;
|
|
152
|
+
/** Día, hora y minuto de la humedad máxima (formato ISO 8601) */
|
|
153
|
+
DiaHorMinHumMax: string;
|
|
154
|
+
/** Humedad mínima en % */
|
|
155
|
+
HumedadMin: number;
|
|
156
|
+
/** Día, hora y minuto de la humedad mínima (formato ISO 8601) */
|
|
157
|
+
DiaHorMinHumMin: string;
|
|
158
|
+
/** Velocidad media del viento en m/s */
|
|
159
|
+
VelViento: number;
|
|
160
|
+
/** Dirección media del viento en grados */
|
|
161
|
+
DirViento: number;
|
|
162
|
+
/** Velocidad máxima del viento en m/s */
|
|
163
|
+
VelVientoMax: number;
|
|
164
|
+
/** Día, hora y minuto de la velocidad máxima del viento (formato ISO 8601) */
|
|
165
|
+
DiaHorMinVelMax: string;
|
|
166
|
+
/** Dirección del viento a velocidad máxima en grados */
|
|
167
|
+
DirVientoVelMax: number;
|
|
168
|
+
/** Radiación solar en MJ/m² */
|
|
169
|
+
Radiacion: number;
|
|
170
|
+
/** Precipitación en mm */
|
|
171
|
+
Precipitacion: number;
|
|
172
|
+
/** Evapotranspiración de referencia método Penman-Monteith en mm */
|
|
173
|
+
EtPMon: number;
|
|
174
|
+
/** Precipitación efectiva método Penman-Monteith en mm */
|
|
175
|
+
PePMon: number;
|
|
176
|
+
/** Código de la estación */
|
|
177
|
+
Estacion: string;
|
|
178
|
+
}
|
|
179
|
+
//# sourceMappingURL=Models.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Models.d.ts","sourceRoot":"","sources":["../../../src/internal/data/Models.ts"],"names":[],"mappings":"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"}
|