karso/front/src/app/service/application.ts

200 lines
4.8 KiB
TypeScript

/** @file
* @author Edouard DUPIN
* @copyright 2018, Edouard DUPIN, all right reserved
* @license PROPRIETARY (see license file)
*/
import { Injectable } from '@angular/core';
import {
SessionService,
StorageService,
HTTPMimeType,
HTTPRequestModel,
HttpWrapperService,
ModelResponseHttp,
} from 'common/service';
interface MessageLogIn {
login: string;
method: string;
time: number;
password: string;
}
export interface SpecificTokenResponse {
jwt: string;
url: string;
}
export interface SpecificReturnResponse {
url: string;
}
export interface GetApplicationSmallResponse {
name: string;
description: string;
redirect: string;
}
export interface ApplicationModel {
id: number;
name: string;
description: string;
redirect: string;
redirectDev: string;
notification: string;
ttl: number;
}
@Injectable()
export class ApplicationService {
constructor(private http: HttpWrapperService, private sessionService: SessionService) {
console.log('Start ApplicationService');
}
getApplicationSpecificToken(applicationId: string): Promise<SpecificTokenResponse> {
let self = this;
return new Promise((resolve, reject) => {
this.http
.requestJson({
server: 'karso',
endPoint: 'application/get_token',
requestType: HTTPRequestModel.GET,
accept: HTTPMimeType.JSON,
contentType: HTTPMimeType.JSON,
params: {
application: applicationId,
},
})
.then((response: ModelResponseHttp) => {
// TODO: check type ...
console.log(
`retreive Token for application : get some data to check: ${JSON.stringify(response.data)}`
);
// tODO: check the format...
resolve(response.data);
})
.catch((error: any) => {
reject(`return ERROR ${JSON.stringify(error, null, 2)}`);
});
});
}
getApplicationReturn(applicationId: string): Promise<SpecificReturnResponse> {
let self = this;
return new Promise((resolve, reject) => {
this.http
.requestJson({
server: 'karso',
endPoint: 'application/return',
requestType: HTTPRequestModel.GET,
accept: HTTPMimeType.JSON,
contentType: HTTPMimeType.JSON,
params: {
application: applicationId,
},
})
.then((response: ModelResponseHttp) => {
// TODO: check type ...
console.log(
`retreive return for application : get some data to check: ${JSON.stringify(response.data)}`
);
// tODO: check the format...
resolve(response.data);
})
.catch((error: any) => {
reject(`return ERROR ${JSON.stringify(error, null, 2)}`);
});
});
}
getApplicationsSmall(): Promise<GetApplicationSmallResponse[]> {
let self = this;
return new Promise((resolve, reject) => {
this.http
.requestJson({
server: 'karso',
endPoint: 'application/small',
requestType: HTTPRequestModel.GET,
accept: HTTPMimeType.JSON,
contentType: HTTPMimeType.JSON,
})
.then((response: ModelResponseHttp) => {
// TODO: check type ...
console.log(
`retreive return for application : get some data to check: ${JSON.stringify(response.data)}`
);
// tODO: check the format...
resolve(response.data);
})
.catch((error: any) => {
reject(`return ERROR ${JSON.stringify(error, null, 2)}`);
});
});
}
gets(): Promise<ApplicationModel[]> {
return new Promise((resolve, reject) => {
this.http
.requestJson({
server: 'karso',
endPoint: 'application',
requestType: HTTPRequestModel.GET,
accept: HTTPMimeType.JSON,
contentType: HTTPMimeType.JSON,
})
.then((response: ModelResponseHttp) => {
// TODO: check type ...
console.log(
`retreive return for application : get some data to check: ${JSON.stringify(response.data)}`
);
// tODO: check the format...
resolve(response.data);
})
.catch((error: any) => {
reject(`return ERROR ${JSON.stringify(error, null, 2)}`);
});
});
}
create(name: string, redirect: string): Promise<ApplicationModel> {
let body = {
name,
redirect,
};
return new Promise((resolve, reject) => {
this.http
.requestJson({
server: 'karso',
endPoint: 'application',
requestType: HTTPRequestModel.POST,
accept: HTTPMimeType.JSON,
contentType: HTTPMimeType.JSON,
body,
})
.then((response: ModelResponseHttp) => {
resolve(response.data);
})
.catch((error: any) => {
reject(`return ERROR ${JSON.stringify(error, null, 2)}`);
});
});
}
remove(id: number): Promise<void> {
return new Promise((resolve, reject) => {
this.http
.request({
server: 'karso',
endPoint: `application/${id}`,
requestType: HTTPRequestModel.DELETE,
accept: HTTPMimeType.ALL,
contentType: HTTPMimeType.JSON,
})
.then(() => {
resolve();
})
.catch((error: any) => {
reject(`return ERROR ${JSON.stringify(error, null, 2)}`);
});
});
}
}