UNPKG

client-cloud-services

Version:

Sunbird Client Services - To access cloud services

79 lines (69 loc) 2.17 kB
const cloudService = require('client-cloud-services'); const { cloudConfig, uploadContainerName } = require('./env'); const dateFormat = require('dateformat'); const uuidv1 = require('uuid/v1'); const express = require('express'); const app = express() let cloudClient = cloudService.init(cloudConfig); console.log("Cloud Client Initialised for The Provider:", cloudConfig.provider) const getGeneralisedResourcesBundles = (req, res) => { let container, blobName = req.params.fileName; container = cloudConfig.publicObjectStorage; cloudClient.getFileAsText(container, blobName, function (error, result, response) { if (error && error.statusCode === 404) { console.error({ msg: "Blob %s wasn't found container %s", blobName, container }) const response = { responseCode: "CLIENT_ERROR", params: { err: "CLIENT_ERROR", status: "failed", errmsg: "Blob not found" }, result: error } res.status(404).send(apiResponse(response)); } else { const response = { responseCode: "OK", params: { err: null, status: "success", errmsg: null }, result: result } res.setHeader("Content-Type", "application/json"); res.status(200).send(apiResponse(response)); } }); } const apiResponse = ({ responseCode, result, params: { err, errmsg, status } }) => { return { 'id': 'api.report', 'ver': '1.0', 'ts': dateFormat(new Date(), 'yyyy-mm-dd HH:MM:ss:lo'), 'params': { 'resmsgid': uuidv1(), 'msgid': null, 'status': status, 'err': err, 'errmsg': errmsg }, 'responseCode': responseCode, 'result': result } } app.post('/upload', cloudClient.blockStreamUpload(uploadContainerName) ); app.get('/fileread/:slug/:filename', cloudClient.fileReadStream(cloudConfig.privateObjectStorage)); app.get('/metadata', cloudClient.getFileProperties(cloudConfig.privateObjectStorage) ); app.get('/getfileastext/:lang/:fileName', getGeneralisedResourcesBundles ); app.listen(3030, () => { console.log(`Server is running on port 3030`); });