Skip to content

Instantly share code, notes, and snippets.

@galek
Created June 15, 2019 12:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save galek/4604b641fbe7b396e05a7480881485f1 to your computer and use it in GitHub Desktop.
Save galek/4604b641fbe7b396e05a7480881485f1 to your computer and use it in GitHub Desktop.
apiProvider.ts
import { Config } from './config';
import { HttpClient, HttpParams } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs';
@Injectable()
export class API {
public config: Config;
public http: HttpClient;
constructor(public _http: HttpClient) {
this.http = _http;
this.config = new Config();
}
getItem(endPoint: string): Observable<any> {
if (!this.http) {
console.error("[Fatal error] Not exist http interfaces");
return;
}
var reqUrl = this.config.GetFullAPI() + endPoint;
return this.http.get(reqUrl, this.config.GetHeadersNew()).pipe();
}
// getItem2(endPoint: string): Observable<any> {
// if (!this.http) {
// console.error("[Fatal error] Not exist http interfaces");
// return;
// }
// var reqUrl = this.config.GetFullAPI() + endPoint;
// // return this.http.get(reqUrl, this.config.GetHeadersNew()).pipe();
// return new Promise(resolve => {
// this.http.get(reqUrl, this.config.GetHeadersNew())
// .subscribe(data => {
// resolve(data);
// });
// }
// !@ Post item with form Data
// !@see: https://stackoverflow.com/questions/46291244/how-to-use-httpclient-send-a-form-data-request
postItem(endPoint: string, data: any = {}): Observable<any> {
if (!this.http) {
console.error("[Fatal error] Not exist http interfaces");
return;
}
var reqUrl = this.config.GetFullAPI() + endPoint;
return this.http.post(reqUrl, data, this.config.GetHeadersNew()).pipe();
}
getInfo(endPoint: string, params: any = {}): Observable<any> {
if (!this.http) {
console.error("[Fatal error] Not exist http interfaces");
return;
}
var reqUrl = this.config.GetFullAPI() + endPoint;
return this.getInfoAnyURL(reqUrl, params);
}
getInfoAnyURL(url: string, data: any = {}): Observable<any> {
if (!this.http) {
console.error("[Fatal error] Not exist http interfaces");
return;
}
if (data === 0) { data = {}; }
var params = new HttpParams();
params = params.set("", "");
// Так как иначе не будет & передан(т.е url будет UrlParam1&Param2)
// Корретный вариант url&param1
for (var key in data) {
if ('object' !== typeof (data[key])) {
params = params.set(key, data[key]);
}
}
// return this.http.get(url + "&" + params1.toString()).pipe();
return this.http.get(url + params.toString()).pipe();
}
// TODO: check with post (form data), can be deprecated
ajaxCall(endPoint: string, data: any)
: Observable<Object> {
if (!this.http) {
console.error("[Fatal error] Not exist http interfaces");
return;
}
if (data === 0) { data = {}; }
var reqUrl = this.config.GetFullAPI() + endPoint;
var params = new HttpParams();
for (var key in data) {
if ('object' !== typeof (data[key])) {
params = params.set(key, data[key]);
}
}
return this.http.post(reqUrl, params, this.config.GetHeadersNew()).pipe();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment