UNPKG

4.46 kBJavaScriptView Raw
1import 'rxjs/add/operator/map';
2import { Log, Level } from 'ng2-logger/browser';
3const log = Log.create('rest.class', Level.__NOTHING);
4import { getRestParams, getParamsUrl } from './params';
5import { RestHeaders } from './rest-headers';
6//#endregion
7export const DEFAULT_HEADERS = {
8 'Content-Type': 'application/json',
9 'Accept': 'application/json'
10};
11export class Rest {
12 constructor(endpoint, request, meta) {
13 this.request = request;
14 this.meta = meta;
15 //#endregion
16 //#region constructor
17 this._headers = RestHeaders.from(DEFAULT_HEADERS);
18 //#endregion
19 this.array = {
20 get: (params = undefined, doNotSerializeParams) => {
21 return this.req('get', undefined, params, doNotSerializeParams, true);
22 },
23 head: (params = undefined, doNotSerializeParams) => {
24 return this.req('head', undefined, params, doNotSerializeParams, true);
25 },
26 post: (item, params, doNotSerializeParams) => {
27 return this.req('post', item, params, doNotSerializeParams, true);
28 },
29 put: (item, params, doNotSerializeParams) => {
30 return this.req('put', item, params, doNotSerializeParams, true);
31 },
32 patch: (item, params, doNotSerializeParams) => {
33 return this.req('patch', item, params, doNotSerializeParams, true);
34 },
35 delete: (params, doNotSerializeParams) => {
36 return this.req('delete', undefined, params, doNotSerializeParams, true);
37 },
38 jsonp: (params, doNotSerializeParams) => {
39 return this.req('jsonp', undefined, params, doNotSerializeParams, true);
40 }
41 };
42 this.__meta_endpoint = endpoint;
43 }
44 mock(mock) {
45 if ((typeof mock === 'function') || (typeof mock === 'object')) {
46 this.mockHttp = mock;
47 }
48 else {
49 throw `[ng2-rest]
50 .model(...)
51 .mock( < BAD MOCK DATA > )
52 ...
53 `;
54 }
55 return this;
56 }
57 get endpoint() {
58 let e = this.__meta_endpoint;
59 if (this.restQueryParams !== undefined && this._endpointRest !== undefined
60 && typeof this._endpointRest === 'string' && this._endpointRest.trim() !== '')
61 e = this._endpointRest;
62 return e;
63 }
64 set __rest_endpoint(endpoint) {
65 this._endpointRest = endpoint;
66 if (endpoint === undefined) {
67 this.restQueryParams = undefined;
68 }
69 else {
70 this.restQueryParams = getRestParams(endpoint, this.__meta_endpoint);
71 }
72 }
73 creatUrl(params, doNotSerializeParams = false) {
74 return `${this.endpoint}${getParamsUrl(params, doNotSerializeParams)}`;
75 }
76 get headers() {
77 return this._headers;
78 }
79 //#endregion
80 //#region req
81 req(method, item, params, doNotSerializeParams = false, isArray = false) {
82 const modelUrl = this.creatUrl(params, doNotSerializeParams);
83 const body = item ? JSON.stringify(item) : undefined;
84 const result = this.request[method.toLowerCase()](modelUrl, body, this.headers, this.meta, isArray, this.mockHttp);
85 this._headers = RestHeaders.from(DEFAULT_HEADERS);
86 this.mockHttp = undefined;
87 return result;
88 }
89 //#endregion
90 //#region http methods
91 //#region replay
92 replay(method) {
93 this.request.replay(method, this.meta);
94 }
95 get(params, doNotSerializeParams = false) {
96 return this.req('get', undefined, params, doNotSerializeParams);
97 }
98 head(params, doNotSerializeParams = false) {
99 return this.req('head', undefined, params, doNotSerializeParams);
100 }
101 post(item, params, doNotSerializeParams = false) {
102 return this.req('post', item, params, doNotSerializeParams);
103 }
104 put(item, params, doNotSerializeParams = false) {
105 return this.req('put', item, params, doNotSerializeParams);
106 }
107 patch(item, params, doNotSerializeParams = false) {
108 return this.req('patch', item, params, doNotSerializeParams);
109 }
110 delete(params, doNotSerializeParams = false) {
111 return this.req('delete', undefined, params, doNotSerializeParams);
112 }
113 jsonp(params, doNotSerializeParams = false) {
114 return this.req('jsonp', undefined, params, doNotSerializeParams);
115 }
116}
117//# sourceMappingURL=rest.class.js.map
\No newline at end of file