UNPKG

@openveo/publish

Version:
42 lines (35 loc) 1.49 kB
'use strict'; /** * Defines the package factory. * * @module publish/packages/packageFactory */ var openVeoApi = require('@openveo/api'); var VideoProvider = process.requirePublish('app/server/providers/VideoProvider.js'); var PoiProvider = process.requirePublish('app/server/providers/PoiProvider.js'); var fileSystem = openVeoApi.fileSystem; /** * Gets an instance of a Package depending on package file type (factory). * * @param {String} type The type of the package platform to instanciate * @param {Object} mediaPackage Information about the media * @return {module:publish/packages/Package~Package} An instance of a Package sub class */ module.exports.get = function(type, mediaPackage) { if (type) { var coreApi = process.api.getCoreApi(); var videoProvider = new VideoProvider(coreApi.getDatabase()); var poiProvider = new PoiProvider(coreApi.getDatabase()); switch (type) { case fileSystem.FILE_TYPES.TAR: case fileSystem.FILE_TYPES.ZIP: var ArchivePackage = process.requirePublish('app/server/packages/ArchivePackage.js'); return new ArchivePackage(mediaPackage, videoProvider, poiProvider); case fileSystem.FILE_TYPES.MP4: var VideoPackage = process.requirePublish('app/server/packages/VideoPackage.js'); return new VideoPackage(mediaPackage, videoProvider, poiProvider); default: throw new Error('Package type is not valid (' + mediaPackage.packageType + ')'); } } };