Skip to content

Instantly share code, notes, and snippets.

@carlware
Forked from deltaepsilon/fileService.coffee
Last active August 29, 2015 14:07
Show Gist options
  • Save carlware/b992114520a2f60787fc to your computer and use it in GitHub Desktop.
Save carlware/b992114520a2f60787fc to your computer and use it in GitHub Desktop.
angular.module('ClientSuccess.services').factory 'fileService', (authService, $q, $rootScope)->
service = {}
service.uploadAvatar = (file) ->
deferred = $q.defer()
apiAuth = authService.enableAuth()
query =
binary: null
id: null
postIt = () ->
formData = new FormData()
formData.append('file', file) # file is an ArrayBuffer read with fileReader.readAsArrayBuffer(file)
formData.append('name', file.name)
apiAuth.all('api/employee/myinfo').withHttpConfig({transformRequest: angular.identity}).customPOST(formData, 'avatar', undefined, {'Content-Type': undefined}).then (res)->
deferred.resolve(res)
if apiAuth.all
fileReader = new FileReader();
fileReader.onload = (e) ->
query =
arrayBuffer: e.target.result
size: e.total
type: file.type
$rootScope.$apply(postIt);
fileReader.readAsArrayBuffer(file);
return deferred.promise;
else
return false
service.uploadNoteFile = (client, note, file) ->
deferred = $q.defer()
apiAuth = authService.enableAuth()
query =
binary: null
id: null
postIt = () ->
# See https://github.com/mgonto/restangular/issues/420
# See http://www.html5rocks.com/en/tutorials/file/xhr2/
formData = new FormData()
formData.append('file', file) # file is an ArrayBuffer read with fileReader.readAsArrayBuffer(file)
formData.append('name', file.name)
apiAuth.one('api/client', client.id).one('note', note.id).withHttpConfig({transformRequest: angular.identity}).customPOST(formData, 'file', undefined, {'Content-Type': undefined}).then (res)->
deferred.resolve(res)
if apiAuth.all
fileReader = new FileReader();
fileReader.onload = (e) ->
query =
arrayBuffer: e.target.result
size: e.total
type: file.type
$rootScope.$apply(postIt);
fileReader.onloadstart = ->
console.log 'onloadstart', arguments
fileReader.onloadprogress = ->
console.log 'onloadprogress', arguments
fileReader.onerror = ->
console.log 'onerror', arguments
fileReader.readAsArrayBuffer(file);
return deferred.promise;
else
return false
return service
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment