src/app/modules/core/services/badges/badges.service.ts
Service to fetch badges
constructor(config: any, learner: LearnerService)
|
constructor
Parameters :
|
Public initialize |
initialize()
|
Returns:
void
|
Public getAllBadgeList |
getAllBadgeList(req: any)
|
method to fetch badges from server.
Returns:
void
|
Public getDetailedBadgeAssertions |
getDetailedBadgeAssertions(req: any, assertions: any)
|
Returns:
void
|
Private _badges$ |
_badges$: |
BehaviorSubject Containing badges. |
Private badges |
badges: |
local variable Containing badges. |
Public badges$ |
badges$: |
Read only observable Containing badges. |
Public config |
config: |
reference of config service. |
Public learner |
learner: |
reference of lerner service. |
import { ConfigService, ServerResponse } from '@sunbird/shared';
import { LearnerService } from './../learner/learner.service';
import { Injectable } from '@angular/core';
import { Observable , BehaviorSubject } from 'rxjs';
import { v4 as UUID } from 'uuid';
import * as _ from 'lodash-es';
/**
* Service to fetch badges
*/
@Injectable({
providedIn: 'root'
})
export class BadgesService {
/**
* BehaviorSubject Containing badges.
*/
private _badges$ = new BehaviorSubject<any>(undefined);
/**
* Read only observable Containing badges.
*/
public readonly badges$: Observable<any> = this._badges$.asObservable();
/**
* local variable Containing badges.
*/
private badges: any;
/**
* reference of config service.
*/
public config: ConfigService;
/**
* reference of lerner service.
*/
public learner: LearnerService;
/**
* constructor
* @param {ConfigService} config ConfigService reference
* @param {LearnerService} learner LearnerService reference
*/
constructor(config: ConfigService, learner: LearnerService) {
this.config = config;
this.learner = learner;
}
public initialize() {
}
/**
* method to fetch badges from server.
*/
public getAllBadgeList(req) {
const option = {
url: this.config.urlConFig.URLS.BADGE.BADGE_CLASS_SEARCH,
data: req
};
return this.learner.post(option);
}
public getDetailedBadgeAssertions(req, assertions) {
return Observable.create(observer => {
const option = {
url: this.config.urlConFig.URLS.BADGE.BADGE_CLASS_SEARCH,
data: req
};
this.learner.post(option).subscribe((badgeSearchResponse) => {
if (badgeSearchResponse) {
const detailedAssertions: any[] = assertions;
for (const detailedAssertion of detailedAssertions) {
const badgeFound: any = _.find(badgeSearchResponse.result.badges, { 'badgeId': detailedAssertion.badgeId });
if (badgeFound) {
detailedAssertion.description = badgeFound.description;
}
observer.next(detailedAssertion);
}
observer.complete();
}
});
});
}
}