UNPKG

fog-controller

Version:

Fog Controller project @ iotracks.com

127 lines (106 loc) 7.3 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _element = require('./../models/element'); var _element2 = _interopRequireDefault(_element); var _baseManager = require('./baseManager'); var _baseManager2 = _interopRequireDefault(_baseManager); var _sequelize = require('./../utils/sequelize'); var _sequelize2 = _interopRequireDefault(_sequelize); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * @file elementManager.js * @author Zishan Iqbal * @description This file includes the CURD operations for the element Model. */ var ElementManager = function (_BaseManager) { _inherits(ElementManager, _BaseManager); function ElementManager() { _classCallCheck(this, ElementManager); return _possibleConstructorReturn(this, (ElementManager.__proto__ || Object.getPrototypeOf(ElementManager)).apply(this, arguments)); } _createClass(ElementManager, [{ key: 'getEntity', value: function getEntity() { return _element2.default; } }, { key: 'deleteElementById', value: function deleteElementById(id) { return _element2.default.destroy({ where: { 'ID': id } }); } }, { key: 'findElementById', value: function findElementById(id) { return _element2.default.findOne({ where: { 'ID': id } }); } }, { key: 'findElementByIds', value: function findElementByIds(ids) { return _element2.default.findAll({ where: { 'ID': { $in: ids } } }); } }, { key: 'findElementImageAndRegistryByIdForFogInstance', value: function findElementImageAndRegistryByIdForFogInstance(id, fogId) { var query = 'SELECT r.url as registryUrl, ' + 'eimg.container_image as containerImage ' + 'FROM element e ' + 'LEFT JOIN registry r ' + 'ON e.registry_id = r.ID ' + 'LEFT JOIN element_images eimg ' + 'ON e.ID = eimg.element_id ' + 'AND eimg.iofog_type_id = ' + '( ' + 'SELECT typeKey ' + 'FROM iofogs ' + 'WHERE iofogs.UUID = \'' + fogId + '\' ' + ') ' + 'WHERE e.ID =' + id; return _sequelize2.default.query(query, { plain: true, type: _sequelize2.default.QueryTypes.SELECT }); } }, { key: 'updateElementById', value: function updateElementById(id, data) { return _element2.default.update(data, { where: { 'ID': id } }); } }, { key: 'getElementCatalog', value: function getElementCatalog(userId) { var query = 'select e.*, ' + 'eit.info_type as inputType, eit.info_format as inputFormat, ' + 'eot.info_type as outputType, eot.info_format as outputFormat ' + 'from element e ' + 'left join element_input_type eit on e.id = eit.element_key ' + 'left join element_output_type eot on e.id = eot.element_key ' + 'where e.publisher != "SYSTEM" AND (e.user_id == ' + userId + ' OR e.is_public = 1)'; return _sequelize2.default.query(query, { type: _sequelize2.default.QueryTypes.SELECT }); } }, { key: 'getElementForPublish', value: function getElementForPublish(userId) { var query = 'select e.* ' + 'from element e ' + 'where e.user_id ==' + userId; return _sequelize2.default.query(query, { type: _sequelize2.default.QueryTypes.SELECT }); } }, { key: 'getElementDetails', value: function getElementDetails(elementId) { var query = 'select e.*, ' + 'it.info_type as inputInfoType, it.info_format as inputInfoFormat, ' + 'ot.info_type as outputInfoType, ot.info_format as outputInfoFormat ' + 'from element e ' + 'left join element_input_type it on e.id = it.element_key ' + 'left join element_output_type ot on e.id = ot.element_key where e.id = ' + elementId; return _sequelize2.default.query(query, { plain: true, type: _sequelize2.default.QueryTypes.SELECT }); } }]); return ElementManager; }(_baseManager2.default); var instance = new ElementManager(); exports.default = instance;