Created
June 8, 2016 10:54
-
-
Save owainlewis/596991c251d37ea255046e709c2aad5d to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var fs = require('fs'); | |
exports.put = function(req, res) { | |
res.render('put', { title: 'Insert a key/value pair into a map' }); | |
}; | |
exports.get = function(req, res) { | |
res.render('get', { title: 'Get a key from a map' }); | |
}; | |
exports.del = function(req, res) { | |
res.render('del', { title: 'Delete a key from a map' }); | |
}; | |
exports.clear = function(req, res) { | |
res.render('clear', { title: 'Clear the map (remove all the keys)' }); | |
}; | |
exports.upload = function(req, res) { | |
res.render('upload', { title: 'Upload a file into a map' }); | |
}; | |
exports.postkey = function(req, res) { | |
var dcClt = req.app.locals.dcClt; | |
if ( dcClt ) { | |
var map = req.body.map; | |
if ( map && map.trim().length==0 ) map = null; | |
dcClt.put(map, req.body.key, req.body.value, req.body.contentType, function(err) { | |
if ( err ) { | |
var msg = 'Cannot insert key *' + req.body.key + '* with value *' + req.body.value + '* and contentType *' + req.body.contentType + '*.'; | |
var dtls = 'Message details. Status: ' + err.status + ', Message: ' + err.message; | |
res.render('response', { title: 'Error', message: msg, details: dtls }); | |
} else { | |
msg = 'The key *' + req.body.key + '* has been inserted into map with value *' + req.body.value + '* and contentType *' + req.body.contentType + '*.'; | |
res.render('response', { title: 'Success', message: msg}); | |
} | |
}); | |
} else { | |
res.render('response', { title: 'Error', message: 'There is no DataCache service associated with the App.' }); | |
} | |
}; | |
exports.uploadfile = function(req, res) { | |
var dcClt = req.app.locals.dcClt; | |
if ( dcClt ) { | |
var localfile = req.files.value.path; | |
var filesize = req.files.value.size; | |
var name = req.files.value.name; | |
var type = req.files.value.type; | |
if ( req.body.key && req.body.key.trim().length > 0 ) { | |
name = req.body.key.trim(); | |
} | |
var map = req.body.map; | |
if ( map && map.trim().length==0 ) map = null; | |
var bodyStream = fs.createReadStream(localfile); | |
dcClt.put(map, name, bodyStream, type, filesize, function(err) { | |
if ( err ) { | |
var msg = 'Cannot upload file *' + name + '* with contentType *' + type + '* into map.'; | |
var dtls = 'Message details. Status: ' + err.status + ', Message: ' + err.message; | |
res.render('response', { title: 'Error', message: msg, details: dtls }); | |
} else { | |
msg = 'The file *' + name + '* with contentType *' + type + '* has been uploaded into map.'; | |
res.render('response', { title: 'Success', message: msg}); | |
} | |
}); | |
} else { | |
res.render('response', { title: 'Error', message: 'There is no DataCache service associated with the App.' }); | |
} | |
}; | |
exports.getkey = function(req, res) { | |
var dcClt = req.app.locals.dcClt; | |
if ( dcClt ) { | |
var map = req.body.map; | |
if ( map && map.trim().length==0 ) map = null; | |
dcClt.get(map, req.body.key, function(result) { | |
if ( result instanceof Error ) { | |
var msg = 'Cannot get key *' + req.body.key + '*'; | |
var dtls = 'Message details. Status: ' + result.status + ', Message: ' + result.message; | |
res.render('response', { title: 'Error', message: msg, details: dtls }); | |
} else { | |
var msg = '<div>Value of key <strong>' + | |
req.body.key + '</strong> is<br><xmp>' + | |
result.responseText + '</xmp><br>and contentType is <strong>' + | |
result.responseHeaders['content-type'] + '</strong></div>'; | |
res.render('response', { title: 'Success', message: msg }); | |
} | |
}); | |
} else { | |
res.render('response', { title: 'Error', message: 'There is no DataCache service associated with the App.' }); | |
} | |
}; | |
exports.delkey = function(req, res) { | |
var dcClt = req.app.locals.dcClt; | |
if ( dcClt ) { | |
var map = req.body.map; | |
if ( map && map.trim().length==0 ) map = null; | |
dcClt.remove(map, req.body.key, function(err) { | |
if ( err ) { | |
var msg = 'Cannot delete key *' + req.body.key + '*.'; | |
var dtls = 'Message details. Status: ' + err.status + ', Message: ' + err.message; | |
res.render('response', { title: 'Error', message: msg, details: dtls }); | |
} else { | |
var msg = 'The key *' + req.body.key + '* has been removed.'; | |
res.render('response', { title: 'Success', message: msg }); | |
} | |
}); | |
} else { | |
res.render('response', { title: 'Error', message: 'There is no DataCache service associated with the App.' }); | |
} | |
}; | |
exports.clearmap = function(req, res) { | |
var dcClt = req.app.locals.dcClt; | |
if ( dcClt ) { | |
var map = req.body.map; | |
if ( map && map.trim().length==0 ) map = null; | |
dcClt.clearMap(map, function(err) { | |
if ( err ) { | |
var msg = 'Cannot clear map.'; | |
var dtls = 'Message details. Status: ' + err.status + ', Message: ' + err.message; | |
res.render('response', { title: 'Error', message: msg, details: dtls }); | |
} else { | |
var msg = 'All keys in the map has been removed.'; | |
res.render('response', { title: 'Success', message: msg }); | |
} | |
}); | |
} else { | |
res.render('response', { title: 'Error', message: 'There is no DataCache service associated with the App.' }); | |
} | |
}; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment