diff --git a/utils/subscribe/subscribe.service.ts b/utils/subscribe/subscribe.service.ts new file mode 100644 index 00000000..9326b726 --- /dev/null +++ b/utils/subscribe/subscribe.service.ts @@ -0,0 +1,55 @@ +import { Injectable } from '@angular/core'; +import { Http, Response, Headers, RequestOptions } from '@angular/http'; +import { Observable } from 'rxjs/Rx'; +import {COOKIE} from "../../login/utils/helper.class" + + +@Injectable() +export class SubscribeService { + + constructor(private http:Http) { + } + getCommunitySubscribers(pid:string, url:string){ + return this.http.get(url+"/community/"+pid+"/subscribers") + .map(res => res.json()).do(res => {console.log(res)}).do(res => {console.log(res)}); + } + + isSubscribedToCommunity(pid:string, email:string, url:string){ + return this.http.get(url+"/community/"+pid+"/subscribers") + .map(res => ((res =="")?{}: res.json())) + + .map(res => { + if(res.subscribers && res.subscribers != null){ + + for(var i =0; i< res.subscribers.length; i++ ){ + if(res.subscribers[i]!=null && res.subscribers[i].email == email){ + return true; + } + } + } + return false; + + }).do(res => {console.log("Response is "+res)}); + } + subscribeToCommunity(pid:string, email:string, url:string){ + var subscriber = {"email":email}; + return this.http.post(url+"/community/"+pid+"/subscribers", JSON.stringify(subscriber), this.getAuthOptionsWithBody()) + .map(res => res.json()) + .do(res => {console.log("Response is "+res)}); + } + unSubscribeToCommunity(pid:string, email:string, url:string){ + + return this.http.post(url+"/community/"+pid+"/subscribers/delete", JSON.stringify([email]), this.getAuthOptionsWithBody()) + .map(res => res.json()) + .do(res => {console.log("Response is "+res)}); + } + + public getAuthOptionsWithBody():RequestOptions{ + let headers = new Headers(); + headers.append('Content-Type', 'application/json'); + headers.append('X-XSRF-TOKEN', COOKIE.getCookie(COOKIE.cookieName_id)); + let options = new RequestOptions({ headers: headers, withCredentials:true }); + return options; + } + +}