http.provider.ts

import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { Observable } from "rxjs/Observable"; @Injectable()
export class HttpProvider { constructor(
private httpClient: HttpClient,
) { } get(url: string): Observable<any> {
return this.httpClient.get(url)
.map(this.extractData)
.catch(this.handleError);
} list(url: string): Observable<any> {
return this.get(url);
} post(url: string, body: any): Observable<any> {
return this.httpClient.post(url, body)
.map(this.extractData)
.catch(this.handleError);
} delete(url: string): Observable<any> {
return this.httpClient.delete(url)
.map(this.extractData)
.catch(this.handleError);
} patch(url: string, body: any): Observable<any> {
return this.httpClient.patch(url, body)
.map(this.extractData)
.catch(this.handleError);
} put(url: string, body: any): Observable<any> {
return this.httpClient.put(url, body)
.map(this.extractData)
.catch(this.handleError);
} head(url: string): Observable<any> {
return this.httpClient.head(url)
.map(this.extractData)
.catch(this.handleError);
} private extractData(res: Response) {
if (res.status < 200 || res.status >= 300) {
throw new Error('Bad response status: ' + res.status);
}
let body = {};
if (res.status !== 204) {
body = res;
}
return body || {};
} private handleError(error: any) {
const errMsg = error.message || 'Server error';
//console.error(JSON.stringify(error));
return Observable.throw(errMsg);
}
}
import { HttpClient, HttpErrorResponse } from '@angular/common/http';
import { Injectable } from '@angular/core'; @Injectable()
export class AppStoreService {
//private baseUrl: string = '';
constructor(
private httpProvider: HttpClient) {
} SaveAppInfo(app: any, callback: any): void {
if (app.Id) {
let editApp = {
DisplayName: app.DisplayName || '',
Name: app.Name || '',
Info: app.Info,
Port: app.Port,
Category: app.Category
}
this.httpProvider
.put("/api/Applications/", editApp, { responseType: "text" })
.subscribe(result => {
callback(result);
}, this.HandleError);
} else {
let appBody: {} = {}; if (app.DisplayName) {
appBody['DisplayName'] = app.DisplayName;
}
if (app.Name) {
appBody['Name'] = app.Name;
}
if (app.Info) {
appBody['Info'] = app.Info;
}
if (app.Port) {
appBody['Port'] = app.Port;
}
if (app.Category) {
appBody['Category'] = app.Category;
} this.httpProvider
.post('/api/Applications', appBody, { responseType: "text" })
.subscribe(result => {
callback(result);
}, this.HandleError);
}
}
DeleteApp(id: string, callback: any): void {
this.httpProvider
.delete('/api/Applications/'+ id, { responseType: "text" })
.subscribe(result => {
callback(result);
}, this.HandleError);
}
GetAppOne(id: string, callback: any = null): any {
this.httpProvider
.get('/api/Applications/' + id)
.subscribe((result: any) => {
callback(result);
}, this.HandleError);
}
AllApp(displayName: string, category: any, callback: any = null): any {
this.httpProvider
.get("/api/Applications?category=" + category + (displayName ? '&displayName=' + displayName:''))
.subscribe((result: any) => {
callback(result);
}, this.HandleError);
}
GetCategoryList(callback: any = null): void {
this.httpProvider
.get('/api/Applications/Categorys')
.subscribe((result: any) => {
callback(result);
}, this.HandleError);
}
GetAppSatus(callback: any = null): void {
this.httpProvider
.get('/api/Applications/Status')
.subscribe((result: any) => {
callback(result);
}, this.HandleError);
} HandleError(err: HttpErrorResponse): void {
console.log(err)
//let errInfo = JSON.parse(err.error);
//alert(errInfo["odata.error"].message.value);
} AllPkg(id: string, callback: any = null): any {
this.httpProvider
.get("/api/DockerPackages?id=" + id)
.subscribe((result: any) => {
callback(result);
}, this.HandleError);
} SaveAppPkgInfo(pkg: any, callback: any): void {
let pkgBody: {} = {}; if (pkg.AppId) {
pkgBody['AppId'] = pkg.AppId;
}
if (pkg.Description) {
pkgBody['Description'] = pkg.Description;
}
if (pkg.Ports) {
pkgBody['Ports'] = pkg.Ports;
}
pkgBody['Version'] = 0;
pkgBody['Status'] = 0; this.httpProvider
.post('/api/DockerPackages', pkgBody)
.subscribe(result => {
callback(result);
}, this.HandleError);
} GetPkgOne(id: string, callback: any = null): any {
this.httpProvider
.get('/api/DockerPackages/' + id)
.subscribe((result: any) => {
callback(result);
}, this.HandleError);
} GetAppDpyList(id: string, callback: any = null) {
this.httpProvider
.get("/api/Deploys?id=" + id)
.subscribe((result: any) => {
callback(result);
}, this.HandleError);
} DeleteDpy(id: string, callback: any): void {
this.httpProvider
.delete('/api/Deploys/' + id)
.subscribe(result => {
callback(result);
}, this.HandleError);
} ValidatePackage(id: string, callback: any = null): any {
this.httpProvider
.get('/api/DockerPackages/ValidatePackage/' + id)
.subscribe((result: any) => {
callback(result);
}, this.HandleError);
}
SaveAppDpyInfo(dpy: any, callback: any): void {
let dpyBody: {} = {}; if (dpy.AppId) {
dpyBody['AppId'] = dpy.AppId;
}
if (dpy.PackageId) {
dpyBody['PackageId'] = dpy.PackageId;
}
if (dpy.Level) {
dpyBody['Level'] = dpy.Level;
}
if (dpy.InstanceCount) {
dpyBody['InstanceCount'] = dpy.InstanceCount;
}
if (dpy.Description) {
dpyBody['Description'] = dpy.Description;
}
if (dpy.Ports) {
dpyBody['Ports'] = dpy.Ports;
}
dpyBody['Status'] = 0; this.httpProvider
.post('/api/Deploys', dpyBody)
.subscribe(result => {
callback(result);
}, this.HandleError);
}
}

【angular5项目积累总结】http请求服务封装的更多相关文章

  1. 【angular5项目积累总结】消息订阅服务

    code import { Injectable } from '@angular/core'; import { Subject } from 'rxjs/Subject'; @Injectable ...

  2. 【angular5项目积累总结】遇到的一些问题以及解决办法

    1.项目中字符串特别是\r\n,替换成br之后,在页面换行无法生效? 答:绑定元素 innerHTML. <div class="panel-body" [innerHTML ...

  3. 【angular5项目积累总结】侧栏菜单 navmenu

    View Code import { Component, OnInit } from '@angular/core'; import { HttpClient } from '@angular/co ...

  4. 【angular5项目积累总结】avatar组件

    View Code import { Component, HostListener, ElementRef } from '@angular/core'; import { Adal4Service ...

  5. 【angular5项目积累总结】breadcrumb面包屑组件

    view code <div class="fxs-breadcrumb-wrapper" aria-label="Navigation history" ...

  6. 【angular5项目积累总结】结合adal4实现http拦截器(token)

    import { Injectable } from '@angular/core'; import { HttpEvent, HttpInterceptor, HttpHandler, HttpRe ...

  7. 【angular5项目积累总结】文件上传

    <div class="form-group row"> <label class="col-sm-2 col-form-label"> ...

  8. 【angular5项目积累总结】文件下载

    download() { const token = localStorage.getItem('token'); let headers: HttpHeaders = new HttpHeaders ...

  9. 【angular5项目积累总结】自定义管道 OrderBy

    import { Injectable, Pipe } from '@angular/core'; @Pipe({ name: 'orderBy' }) @Injectable() export cl ...

随机推荐

  1. JQuery中DOM操作(一)

    节点操作 1.插入节点,在JQuery中插入的节点方法很多,可以满足各种不同的节点插入的情况,根据不同的插入方式分为:增加环绕节点.节点内部插入和外部插入三种方式 今天我们要讲的是增加环绕节点,它有三 ...

  2. GO学习笔记 - 没有参数的 return 语句返回各个返回变量的当前值,这种用法被称作“裸”返回。

    Go 的返回值可以被命名,并且就像在函数体开头声明的变量那样使用. 返回值的名称应当具有一定的意义,可以作为文档使用. 没有参数的 return 语句返回各个返回变量的当前值.这种用法被称作“裸”返回 ...

  3. FusionCharts的使用方法 - 公司所用的flash式的图像统计工具

    我们公司一直用这个图表统计, 最近整理了一下相关文档,提供大家学习. 首先可以看看 http://www.cnblogs.com/xuhongfei/archive/2013/04/12/301688 ...

  4. 【ocp-12c】最新Oracle OCP-071考试题库(42题)

    42.(9-1)choose the best answer: Which statement is true about the Oracle SQL, DELETE and TRUNCATE st ...

  5. jquery屏蔽掉键盘enter提交 onkeydown

    屏蔽掉enter提交onkeydown onkeydown="if(event.keyCode==13){return false;}"

  6. js判断手机端操作系统的两种方法

    //判断手机端操作系统(Andorid/IOS),并自动跳转相应下载界面 androidURL ="http://xxx/xxx.apk"; var browser = { ver ...

  7. Windows 计划任务之消息提醒

    Windows 计划任务之消息提醒 你肯定也有这种需求.想做一个计划任务,却发现老式消息提醒已经被微软禁止了. 或者就是很单纯的希望给系统弹出一个消息框而并非CMD的echo命令. so...how ...

  8. PUSH的整体设计

  9. jquery中ajax使用error调试错误的方法,实例分析了Ajax的使用方法与error函数调试错误的技巧

    代码:$(document).ready(function() { jQuery("#clearCac").click(function() { jQuery.ajax({ url ...

  10. WCF系列教程之客户端异步调用服务

    本文参考自http://www.cnblogs.com/wangweimutou/p/4409227.html,纯属读书笔记,加深记忆 一.简介 在前面的随笔中,详细的介绍了WCF客户端服务的调用方法 ...