loop-modules
Version:
Shared modules for the Loop product suite.
66 lines (56 loc) • 2.38 kB
text/typescript
// angular
import { Injectable } from '@angular/core';
import { Http } from '@angular/http';
// libs
import { BehaviorSubject } from 'rxjs/BehaviorSubject';
import { Observable } from 'rxjs/Observable';
// app
import { LoopUserService } from './loop-user.service';
import { EmployeeService } from './employee.service';
import { LoopActivityService } from './loop-activity.service';
import { LoopTrendingActivityService } from './loop-trending-activity.service';
import { LoopActivityMessageService } from './loop-activity-message.service';
import { LoopAssignmentService } from './loop-assignment.service';
import { LoopScenarioService } from './loop-scenario.service';
import { LoopTopicService } from './loop-topic.service';
import { LoopDocumentService } from './loop-document.service';
import { LoopSessionService } from './loop-session.service';
import { MediaService } from './media-service.service';
()
export class CoreService {
search$: Observable<string>;
private _searchSource: BehaviorSubject<string> = new BehaviorSubject<string>('');
constructor(
public http: Http,
public activityMessages: LoopActivityMessageService,
public users: LoopUserService,
public assignments: LoopAssignmentService,
public scenarios: LoopScenarioService,
public topics: LoopTopicService,
public documents: LoopDocumentService,
public sessions: LoopSessionService,
public employees: EmployeeService,
public activities: LoopActivityService,
public trendingActivities: LoopTrendingActivityService,
public media: MediaService) {
this.search$ = this._searchSource.asObservable();
}
onSearch(searchPhrase: string) {
this._searchSource.next(searchPhrase);
}
get config() {
return this.http.get('ma_core/api/v2/configuration').map(res => res.json());
}
get uuid(): string {
var d = new Date().getTime();
if(window.performance && typeof window.performance.now === 'function') {
d += performance.now();
}
var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
var r = (d + Math.random()*16)%16 | 0;
d = Math.floor(d/16);
return (c === 'x' ? r : (r&0x3|0x8)).toString(16);
});
return uuid;
}
}