ng2-http
Version:
Angular2 HttpModule wrapper with decorators and interceptors
188 lines • 4.88 kB
JavaScript
import { Http, Headers as AngularHeaders, Request, RequestOptions, RequestMethod as RequestMethods, Response, URLSearchParams } from '@angular/http';
import { Inject, Injectable } from '@angular/core';
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/operator/map';
import 'rxjs/add/observable/of';
import { param, method } from './util';
/**
* Angular 2 RESTClient class.
*
* @class RESTClient
* @constructor
*/
var /**
* Angular 2 RESTClient class.
*
* @class RESTClient
* @constructor
*/
RESTClient = /** @class */ (function () {
function RESTClient(http) {
this.http = http;
}
RESTClient.prototype.getBaseUrl = function () {
if (AngularHeaders)
if (RequestOptions)
if (URLSearchParams)
return null; // this is to quash unused imports messages
return undefined;
};
;
RESTClient.prototype.getDefaultHeaders = function () {
return null;
};
;
/**
* Request Interceptor
*
* @method requestInterceptor
* @param {Request} req - request object
*/
/**
* Request Interceptor
*
* @method requestInterceptor
* @param {Request} req - request object
*/
RESTClient.prototype.requestInterceptor = /**
* Request Interceptor
*
* @method requestInterceptor
* @param {Request} req - request object
*/
function (req) {
return Observable.of(req);
};
/**
* Response Interceptor
*
* @method responseInterceptor
* @param {Response} res - response object
* @returns {Response} res - transformed response object
*/
/**
* Response Interceptor
*
* @method responseInterceptor
* @param {Response} res - response object
* @returns {Response} res - transformed response object
*/
RESTClient.prototype.responseInterceptor = /**
* Response Interceptor
*
* @method responseInterceptor
* @param {Response} res - response object
* @returns {Response} res - transformed response object
*/
function (res) {
return res;
};
return RESTClient;
}());
/**
* Angular 2 RESTClient class.
*
* @class RESTClient
* @constructor
*/
export { RESTClient };
/**
* Set the base URL of REST resource
* @param {String} url - base URL
*/
export function BaseUrl(url) {
return function (Target) {
Target.prototype.getBaseUrl = function () {
return url;
};
return Target;
};
}
/**
* Set default headers for every method of the RESTClient
* @param {Object} headers - deafult headers in a key-value pair
*/
export function DefaultHeaders(headers) {
return function (Target) {
Target.prototype.getDefaultHeaders = function () {
return headers;
};
return Target;
};
}
/**
* Set custom headers for a REST method
* @param {Object} headersDef - custom headers in a key-value pair
*/
export function Headers(headersDef) {
return function (target, propertyKey, descriptor) {
descriptor.headers = headersDef;
return descriptor;
};
}
/**
* Defines the type(s) that the responses can produce
*/
export function Produces(interceptor) {
return function (target, propertyKey, descriptor) {
descriptor.producer = function (res) {
var data;
if (interceptor) {
data = interceptor(res);
}
return data || res.json();
};
return descriptor;
};
}
/**
* Path variable of a method's url, type: string
* @param {string} key - path key to bind value
*/
export var Path = param('Path');
/**
* Query value of a method's url, type: string
* @param {string} key - query key to bind value
*/
export var Query = param('Query');
/**
* Body of a REST method, type: key-value pair object
* Only one body per method!
*/
export var Body = param('Body')('Body');
/**
* Custom header of a REST method, type: string
* @param {string} key - header key to bind value
*/
export var Header = param('Header');
/**
* GET method
* @param {string} url - resource url of the method
*/
export var GET = method(RequestMethods.Get);
/**
* POST method
* @param {string} url - resource url of the method
*/
export var POST = method(RequestMethods.Post);
/**
* PUT method
* @param {string} url - resource url of the method
*/
export var PUT = method(RequestMethods.Put);
/**
* DELETE method
* @param {string} url - resource url of the method
*/
export var DELETE = method(RequestMethods.Delete);
/**
* HEAD method
* @param {string} url - resource url of the method
*/
export var HEAD = method(RequestMethods.Head);
/**
* PATCH method
* @param {string} url - resource url of the method
*/
export var PATCH = method(RequestMethods.Patch);
//# sourceMappingURL=rest.service.js.map