OpenVeo Publish server

API Docs for: 8.0.0
Show:

File: app/server/packages/packageFactory.js

'use strict';

/**
 * @module packages
 */

/**
 * Defines the package factory.
 *
 * @class factory
 * @static
 */

var openVeoApi = require('@openveo/api');
var VideoProvider = process.requirePublish('app/server/providers/VideoProvider.js');
var fileSystem = openVeoApi.fileSystem;

/**
 * Gets an instance of a Package depending on package file type (factory).
 *
 * @method get
 * @static
 * @param {String} type The type of the package platform to instanciate
 * @param {Object} mediaPackage Information about the media
 * @return {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());

    switch (type) {
      case fileSystem.FILE_TYPES.TAR:
        var TarPackage = process.requirePublish('app/server/packages/TarPackage.js');
        return new TarPackage(mediaPackage, videoProvider);

      case fileSystem.FILE_TYPES.MP4:
        var VideoPackage = process.requirePublish('app/server/packages/VideoPackage.js');
        return new VideoPackage(mediaPackage, videoProvider);

      default:
        throw new Error('Package type is not valid (' + mediaPackage.packageType + ')');
    }
  }
};