harbor/src/ui_ng/lib/src/service/endpoint.service.ts

119 lines
3.2 KiB
TypeScript

import { Observable } from 'rxjs/Observable';
import { RequestQueryParams } from './RequestQueryParams';
import { Endpoint } from './interface';
import { Injectable } from "@angular/core";
import 'rxjs/add/observable/of';
/**
* Define the service methods to handle the endpoint related things.
*
* @export
* @abstract
* @class EndpointService
*/
export abstract class EndpointService {
/**
* Get all the endpoints.
* Set the argument 'endpointName' to return only the endpoints match the name pattern.
*
* @abstract
* @param {string} [endpointName]
* @param {RequestQueryParams} [queryParams]
* @returns {(Observable<Endpoint[]> | Endpoint[])}
*
* @memberOf EndpointService
*/
abstract getEndpoints(endpointName?: string, queryParams?: RequestQueryParams): Observable<Endpoint[]> | Endpoint[];
/**
* Get the specified endpoint.
*
* @abstract
* @param {(number | string)} endpointId
* @returns {(Observable<Endpoint> | Endpoint)}
*
* @memberOf EndpointService
*/
abstract getEndpoint(endpointId: number | string): Observable<Endpoint> | Endpoint;
/**
* Create new endpoint.
*
* @abstract
* @param {Endpoint} endpoint
* @returns {(Observable<any> | any)}
*
* @memberOf EndpointService
*/
abstract createEndpoint(endpoint: Endpoint): Observable<any> | any;
/**
* Update the specified endpoint.
*
* @abstract
* @param {(number | string)} endpointId
* @param {Endpoint} endpoint
* @returns {(Observable<any> | any)}
*
* @memberOf EndpointService
*/
abstract updateEndpoint(endpointId: number | string, endpoint: Endpoint): Observable<any> | any;
/**
* Delete the specified endpoint.
*
* @abstract
* @param {(number | string)} endpointId
* @returns {(Observable<any> | any)}
*
* @memberOf EndpointService
*/
abstract deleteEndpoint(endpointId: number | string): Observable<any> | any;
/**
* Ping the specified endpoint.
*
* @abstract
* @param {Endpoint} endpoint
* @returns {(Observable<any> | any)}
*
* @memberOf EndpointService
*/
abstract pingEndpoint(endpoint: Endpoint): Observable<any> | any;
}
/**
* Implement default service for endpoint.
*
* @export
* @class EndpointDefaultService
* @extends {EndpointService}
*/
@Injectable()
export class EndpointDefaultService extends EndpointService {
public getEndpoints(endpointName?: string, queryParams?: RequestQueryParams): Observable<Endpoint[]> | Endpoint[] {
return Observable.of([]);
}
public getEndpoint(endpointId: number | string): Observable<Endpoint> | Endpoint {
return Observable.of({});
}
public createEndpoint(endpoint: Endpoint): Observable<any> | any {
return Observable.of({});
}
public updateEndpoint(endpointId: number | string, endpoint: Endpoint): Observable<any> | any {
return Observable.of({});
}
public deleteEndpoint(endpointId: number | string): Observable<any> | any {
return Observable.of({});
}
public pingEndpoint(endpoint: Endpoint): Observable<any> | any {
return Observable.of({});
}
}