diff options
Diffstat (limited to 'catalog-ui/src/app/services/cookie-service.ts')
-rw-r--r-- | catalog-ui/src/app/services/cookie-service.ts | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/catalog-ui/src/app/services/cookie-service.ts b/catalog-ui/src/app/services/cookie-service.ts new file mode 100644 index 0000000000..8f88835c18 --- /dev/null +++ b/catalog-ui/src/app/services/cookie-service.ts @@ -0,0 +1,72 @@ +'use strict'; +import {IAppConfigurtaion, ICookie} from "../models/app-config"; + +interface ICookieService { + getUserId():string; + getFirstName():string; + getLastName():string; + getEmail():string; + getUserIdSuffix():string; +} + +export class CookieService implements ICookieService { + + static '$inject' = ['sdcConfig', '$document']; + private cookie:ICookie; + private cookiePrefix:string; + + + constructor(sdcConfig: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; + } +} |