blob: 7c3a1f76ba09f9331ba8b07457abdcef54c9de54 [file] [log] [blame]
var Promise = require('bluebird')
module.exports = function StorageServiceFactory($http, $upload) {
var service = {}
service.storeUrl = function(type, url) {
return $http({
url: '/s/download/' + type
, method: 'POST'
, data: {
url: url
}
})
}
service.storeFile = function(type, files, options) {
var resolver = Promise.defer()
var input = options.filter ? files.filter(options.filter) : files
if (input.length) {
$upload.upload({
url: '/s/upload/' + type
, method: 'POST'
, file: input
})
.then(
function(value) {
resolver.resolve(value)
}
, function(err) {
resolver.reject(err)
}
, function(progressEvent) {
resolver.progress(progressEvent)
}
)
}
else {
var err = new Error('No input files')
err.code = 'no_input_files'
resolver.reject(err)
}
return resolver.promise
}
return service
}