(function(){ 'use strict'; angular.module('laz.videoLibrary') .factory('videoApi', [ 'createApi', function(createApi) { var videoApi = createApi('/api/videoLibrary/'); var VIEW_TYPES = { CARD: 'card', PLAYABLE: 'playable' }; var FEATURED_SENTINEL_ID = 'featured'; var FEATURED_GETTING_STARTED_ID = 'gettingstarted'; return { findById: findById, findCategories: findCategories, findGettingStartedCategories: findGettingStartedCategories, VIEW_TYPES: VIEW_TYPES, FEATURED_SENTINEL_ID: FEATURED_SENTINEL_ID, FEATURED_GETTING_STARTED_ID : FEATURED_GETTING_STARTED_ID }; function findById(videoId, view){ view = view || VIEW_TYPES.PLAYABLE; if(isNaN(parseInt(videoId)) && videoId !== FEATURED_SENTINEL_ID && videoId !== FEATURED_GETTING_STARTED_ID){ throw Error('videoId must be an integer or default value'); } if (videoId == FEATURED_GETTING_STARTED_ID) { return videoApi.get('gettingStarted/featured', { params: { view_type: view } }); } return videoApi.get('videos/' + videoId, { params: { view_type: view } }); } function findCategories(view){ view = view || VIEW_TYPES.PLAYABLE; return videoApi.get('videoCategories', { params: { view_type: view } }); } function findGettingStartedCategories(view){ view = view || VIEW_TYPES.PLAYABLE; return videoApi.get('gettingStartedCategories', { params: { view_type: view } }); } } ]); })();