From 78b085815b9873acdf178b2e9c9598d065fd40c0 Mon Sep 17 00:00:00 2001
From: Joaquín Reñé <jrene@curisit.net>
Date: Mon, 20 Apr 2026 19:30:51 +0000
Subject: [PATCH] #4479 - upgrade SecurisServer to Java 21
---
securis/src/main/webapp/src/app/resources/base.ts | 94 +++++++++++++++++++++++++++++-----------------
1 files changed, 59 insertions(+), 35 deletions(-)
diff --git a/securis/src/main/webapp/src/app/resources/base.ts b/securis/src/main/webapp/src/app/resources/base.ts
index 2833eb0..3f5f39d 100644
--- a/securis/src/main/webapp/src/app/resources/base.ts
+++ b/securis/src/main/webapp/src/app/resources/base.ts
@@ -1,53 +1,77 @@
import { LocaleService } from '../common/i18n';
import { BasicService } from '../common/utils';
import { Observable } from 'rxjs/Observable';
-import { Http, RequestOptionsArgs, URLSearchParams } from '@angular/http';
+import { Http, RequestOptionsArgs, URLSearchParams, Headers } from '@angular/http';
+import { Locker } from 'angular-safeguard';
+
export class MySearchParams extends URLSearchParams {
- constructor(obj : any = {}) {
- var searchQuery = Object.keys(obj).map(key => `${key}=${encodeURIComponent(obj[key])}`).join('&');
+ constructor(obj: any = {}) {
+ const searchQuery = Object.keys(obj).map(key => `${key}=${encodeURIComponent(obj[key])}`).join('&');
super(searchQuery);
}
}
export class SeCurisResourceServices extends BasicService {
- constructor($L: LocaleService,
- protected http: Http,
- protected resource: string) {
- super($L);
- }
+ constructor($L: LocaleService,
+ protected http: Http,
+ protected store: Locker,
+ protected resource: string) {
+ super($L);
+ this.resource = `api/${resource}`;
+ }
- public get(id?: any) : Observable<any> {
- let url = `${this.resource}/${id || ''}`;
- return this.http.get(url).map(response => response.json()).catch(err => super.processErrorResponse(err));
+ protected getAuthHeaders(): RequestOptionsArgs {
+ const token = this.store.get('token');
+ const headers = new Headers();
+ if (token) {
+ headers.append('X-SECURIS-TOKEN', token);
}
+ headers.append('Content-Type', 'application/json');
+ return { headers: headers };
+ }
- public create(data: any) : Observable<any> {
- let url = `${this.resource}`;
- return this.http.post(url, JSON.stringify(data)).map(response => response.json()).catch(err => super.processErrorResponse(err));
- }
+ public get(id?: any): Observable<any> {
+ const url = `${this.resource}/${id || ''}`;
+ return this.http.get(url, this.getAuthHeaders())
+ .map(response => response.json())
+ .catch(err => super.processErrorResponse(err));
+ }
- public modify(id: any, data: any) : Observable<any> {
- let url = `${this.resource}/${id}`;
- return this.http.post(url, JSON.stringify(data)).map(response => response.json()).catch(err => super.processErrorResponse(err));
- }
+ public create(data: any): Observable<any> {
+ const url = `${this.resource}`;
+ return this.http.post(url, JSON.stringify(data), this.getAuthHeaders())
+ .map(response => response.json())
+ .catch(err => super.processErrorResponse(err));
+ }
- public remove(id: any) : Observable<any> {
- let url = `${this.resource}/${id}`;
- return this.http.delete(url).map(response => response.json()).catch(err => super.processErrorResponse(err));
- }
-
- public action(id: any, action: string, method = 'POST', params : any = {}) : Observable<any> {
- let url = `${this.resource}/${id}/${action}`;
- params.action = action;
- var options:RequestOptionsArgs = {
- url: url,
- method: method,
- search: (method == 'GET') && new MySearchParams(params) || undefined,
- body: (method == 'POST') && JSON.stringify(params) || undefined
- };
- return this.http.request(url, options).map(response => response.json()).catch(err => super.processErrorResponse(err));
- }
+ public modify(id: any, data: any): Observable<any> {
+ const url = `${this.resource}/${id}`;
+ // Se usa POST para modificar (según tu diseño original)
+ return this.http.post(url, JSON.stringify(data), this.getAuthHeaders())
+ .map(response => response.json())
+ .catch(err => super.processErrorResponse(err));
+ }
+ public remove(id: any): Observable<any> {
+ const url = `${this.resource}/${id}`;
+ return this.http.delete(url, this.getAuthHeaders())
+ .map(response => response.json())
+ .catch(err => super.processErrorResponse(err));
+ }
+ public action(id: any, action: string, method: string = 'POST', params: any = {}): Observable<any> {
+ const url = `${this.resource}/${id}/${action}`;
+ params.action = action;
+ const options: RequestOptionsArgs = {
+ url: url,
+ method: method,
+ search: (method === 'GET') ? new MySearchParams(params) : undefined,
+ headers: this.getAuthHeaders().headers,
+ body: (method === 'POST') ? JSON.stringify(params) : undefined
+ };
+ return this.http.request(url, options)
+ .map(response => response.json())
+ .catch(err => super.processErrorResponse(err));
+ }
}
\ No newline at end of file
--
Gitblit v1.3.2