diff options
Diffstat (limited to 'catalog-ui/app/scripts/services/cookie-service.ts')
-rw-r--r-- | catalog-ui/app/scripts/services/cookie-service.ts | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/catalog-ui/app/scripts/services/cookie-service.ts b/catalog-ui/app/scripts/services/cookie-service.ts new file mode 100644 index 0000000000..b23a7dccde --- /dev/null +++ b/catalog-ui/app/scripts/services/cookie-service.ts @@ -0,0 +1,95 @@ +/*- + * ============LICENSE_START======================================================= + * SDC + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ +/// <reference path="../references"/> +module Sdc.Services { + + 'use strict'; + + interface ICookieService { + getUserId(): string; + getFirstName(): string; + getLastName(): string; + getEmail(): string; + getUserIdSuffix(): string; + } + + export class CookieService implements ICookieService { + + static '$inject' = ['sdcConfig', '$document']; + private cookie: Sdc.Models.ICookie; + private cookiePrefix: string; + + + constructor(sdcConfig: Models.IAppConfigurtaion, private $document) { + this.cookie = sdcConfig.cookie; + + this.cookiePrefix = ''; + let junctionName: string = this.getCookieByName(this.cookie.junctionName); + if ((junctionName !== null) && (junctionName !== '')){ + this.cookiePrefix = this.cookie.prefix+junctionName+'!'; + } + } + + private getCookieByName = (cookieName: string): string => { + cookieName += '='; + let cookies: Array<string> = this.$document[0].cookie.split(';'); + let cookieVal: string = ''; + cookies.forEach((cookie: string) => { + while(cookie.charAt(0) === ' '){ + cookie = cookie.substring(1); + } + if(cookie.indexOf(cookieName) === 0){ + cookieVal = cookie.substring(cookieName.length, cookie.length); + return; + } + }); + return cookieVal; + }; + + public getUserIdSuffix = (): string => { + return this.cookie.userIdSuffix; + }; + + public getUserId = (): string => { + let userIdCookieName: string = this.cookiePrefix+this.cookie.userIdSuffix; + let userId: string = this.getCookieByName(userIdCookieName); + return userId; + }; + + public getFirstName = (): string => { + let firstNameCookieName: string = this.cookiePrefix+this.cookie.userFirstName; + let firstName: string = this.getCookieByName(firstNameCookieName); + return firstName; + }; + + public getLastName = (): string => { + let lastNameCookieName: string = this.cookiePrefix+this.cookie.userLastName; + let lastName: string = this.getCookieByName(lastNameCookieName); + return lastName; + }; + + public getEmail = (): string => { + let emailCookieName: string = this.cookiePrefix+this.cookie.userEmail; + let email: string = this.getCookieByName(emailCookieName); + return email; + }; + + } +} |