src/app/models/videos.ts
constructor(videos: Video[])
|
| getAllVideos |
getAllVideos()
|
|
Returns:
Video[]
|
| getAllUnseenVideo |
getAllUnseenVideo()
|
|
Returns:
void
|
| getVideoByParam |
getVideoByParam(unSeen: boolean, age: number, genre: string | VideoGenre, level: string)
|
|
Returns:
void
|
| getVideoByCompetencies |
getVideoByCompetencies(competencies: Competency | Competency[])
|
|
return filtered Array of video by competency
Parameters :
Returns:
void
Video[] |
| getVideoByCompetenciesById |
getVideoByCompetenciesById(competencies: string | string[])
|
|
return filtered Array of video by competency.id
Parameters :
Returns:
void
Video[] |
| Private videos |
videos: |
import { lensFlareVertexShader } from "@babylonjs/core/Shaders/lensFlare.vertex";
import { Competency, Video, VideoGenre } from "./video";
export class Videos {
private videos: Video[];
constructor(videos: Video[]) {
this.videos = videos;
}
getAllVideos(): Video[] {
return this.videos.slice();
}
getAllUnseenVideo() {
return this.videos.slice().filter(video => !video.see);
}
getVideoByParam(unSeen?: boolean, age?: number, genre?: string | VideoGenre,level?: string) {
return this.videos.slice().filter(video => {
let unSeenB: boolean, ageB: boolean, genreB: boolean,levelB : boolean;
unSeenB = ageB = genreB = levelB = true;
if (unSeen) {
unSeenB = !video.see;
}
if (age) {
ageB = video.age <= age;
}
if (genre) {
genreB = video.genres?.includes(genre as VideoGenre);
}
if (level) {
levelB = video.levels?.includes(level);
}
return unSeenB && ageB && genreB && levelB ;
});
}
/**
* return filtered Array of video by competency
* @param competencies Competency or Competency[]
* @returns Video[]
*/
getVideoByCompetencies(competencies : Competency | Competency[] ){
if (Array.isArray(competencies)){
return this.videos
.slice()
.filter(video => competencies.some(competency => video.competencies?.includes(competency)));
} else {
return this.videos
.slice()
.filter(video => video.competencies?.includes(competencies));
}
}
/**
* return filtered Array of video by competency.id
* @param competencies id or id[]
* @returns Video[]
*/
getVideoByCompetenciesById(competencies : string | string[] ){
if (Array.isArray(competencies)){
return this.videos
.slice()
.filter(video => competencies.some(competency => video.competencies?.some(competencyV => competencyV.id === competency)));
} else {
return this.videos
.slice()
.filter(video => video.competencies?.some(competencyV => competencyV.id === competencies));
}
}
}