streamby-core
Version:
StreamBy middleware framework for media storage management
40 lines (39 loc) • 1.97 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.createStreamByRouter = createStreamByRouter;
const express_1 = __importDefault(require("express"));
const manager_1 = require("../models/manager");
const storage_1 = require("../providers/storage");
const connectionManager_1 = require("../adapters/database/connectionManager");
const auth_1 = require("./routes/auth");
const database_1 = require("./routes/database");
const storage_2 = require("./routes/storage");
const project_1 = require("./routes/project");
const export_1 = require("./routes/export");
const auth_2 = require("../services/auth");
function createStreamByRouter(config) {
const router = express_1.default.Router();
(0, connectionManager_1.initConnections)(config.databases || []);
const adapter = config.adapter || (0, storage_1.createStorageProvider)(config.storageProviders);
if (config.databases) {
const allDbIds = config.databases.map(db => db.id);
const sqlDbs = config.databases.filter(db => db.type === 'sql');
const streambySchema = sqlDbs.length > 0 ? 'streamby' : undefined;
(0, manager_1.registerModel)('projects', allDbIds, 'projects', streambySchema);
(0, manager_1.registerModel)('exports', allDbIds, 'exports', streambySchema);
const mainDb = config.databases.find(db => db.main);
if (mainDb) {
(0, manager_1.registerModel)('users', [mainDb.id], 'users', streambySchema);
}
}
router.use((0, auth_2.authenticate)(config));
router.use((0, auth_1.authRouter)(config));
router.use((0, database_1.databaseRouter)(config));
router.use((0, storage_2.storageRouter)(config));
router.use((0, project_1.projectRouter)(config));
router.use((0, export_1.exportRouter)(config));
return router;
}