@@ -30,15 +30,18 @@ function ContentProxy(service) {
3030}
3131
3232ContentProxy . prototype = {
33-
34- create : function ( params , callback ) {
35- Utils . QBLog ( '[ContentProxy]' , 'create' , params ) ;
36-
37- this . service . ajax ( { url : Utils . getUrl ( config . urls . blobs ) , data : { blob :params } , type : 'POST' } , function ( err , result ) {
38- if ( err ) { callback ( err , null ) ; }
39- else { callback ( err , result . blob ) ; }
40- } ) ;
41- } ,
33+ create : function ( params , callback ) {
34+ Utils . QBLog ( '[ContentProxy]' , 'create' , params ) ;
35+
36+ this . service . ajax ( {
37+ type : 'POST' ,
38+ data : { blob : params } ,
39+ url : Utils . getUrl ( config . urls . blobs )
40+ } , function ( err , result ) {
41+ if ( err ) { callback ( err , null ) ; }
42+ else { callback ( err , result . blob ) ; }
43+ } ) ;
44+ } ,
4245
4346 list : function ( params , callback ) {
4447 if ( typeof params === 'function' && typeof callback === 'undefined' ) {
@@ -63,90 +66,98 @@ ContentProxy.prototype = {
6366 } ) ;
6467 } ,
6568
66- createAndUpload : function ( params , callback ) {
67- var createParams = { } , file , name , type , size , fileId , _this = this ;
68-
69- var clonedParams = JSON . parse ( JSON . stringify ( params ) ) ;
70- clonedParams . file . data = "..." ;
71- Utils . QBLog ( '[ContentProxy]' , 'createAndUpload' , clonedParams ) ;
72-
73- file = params . file ;
74- name = params . name || file . name ;
75- type = params . type || file . type ;
76- size = params . size || file . size ;
77-
78- createParams . name = name ;
79- createParams . content_type = type ;
80- if ( params . public ) { createParams . public = params . public ; }
81- if ( params . tag_list ) { createParams . tag_list = params . tag_list ; }
82-
83- // Create a file object
84- //
85- this . create ( createParams , function ( err , createResult ) {
86- if ( err ) {
87- callback ( err , null ) ;
88- } else {
89- var uri = parseUri ( createResult . blob_object_access . params ) ;
90- var uploadUrl = uri . protocol + "://" + uri . authority + uri . path ;
91- var uploadParams = { url : uploadUrl } ;
92-
93- var data ;
94- if ( isBrowser ) {
95- data = new FormData ( ) ;
96- } else {
97- data = { } ;
98- }
99- fileId = createResult . id ;
100-
101- Object . keys ( uri . queryKey ) . forEach ( function ( val ) {
102- if ( isBrowser ) {
103- data . append ( val , decodeURIComponent ( uri . queryKey [ val ] ) ) ;
104- } else {
105- data [ val ] = decodeURIComponent ( uri . queryKey [ val ] ) ;
106- }
107- } ) ;
69+ createAndUpload : function ( params , callback ) {
70+ var _this = this ,
71+ createParams = { } ,
72+ file , name , type , size , fileId ;
10873
109- if ( isBrowser ) {
110- data . append ( 'file' , file , createResult . name ) ;
111- } else {
112- data . file = file ;
113- }
114-
115- uploadParams . data = data ;
116-
117- // Upload the file to Amazon S3
118- //
119- _this . upload ( uploadParams , function ( err , result ) {
120- if ( err ) {
121- callback ( err , null ) ;
122- } else {
123- // Mark file as uploaded
124- //
125- _this . markUploaded ( { id : fileId , size : size } , function ( err , result ) {
126- if ( err ) {
127- callback ( err , null ) ;
128- } else {
129- callback ( null , createResult ) ;
130- }
131- } ) ;
132- }
133- } ) ;
134- }
135- } ) ;
136- } ,
74+ var clonedParams = JSON . parse ( JSON . stringify ( params ) ) ;
75+ clonedParams . file . data = "..." ;
76+
77+ Utils . QBLog ( '[ContentProxy]' , 'createAndUpload' , clonedParams ) ;
13778
138- upload : function ( params , callback ) {
139- Utils . QBLog ( '[ContentProxy]' , 'upload' ) ;
79+ file = params . file ;
80+ name = params . name || file . name ;
81+ type = params . type || file . type ;
82+ size = params . size || file . size ;
14083
141- this . service . ajax ( { url : params . url , data : params . data , dataType : 'text' ,
142- contentType : false , processData : false , type : 'POST' } , function ( err , xmlDoc ) {
143- if ( err ) {
144- callback ( err , null ) ;
145- } else {
146- callback ( null , { } ) ;
147- }
148- } ) ;
149- } ,
84+ createParams . name = name ;
85+ createParams . content_type = type ;
86+
87+ if ( params . public ) { createParams . public = params . public ; }
88+ if ( params . tag_list ) { createParams . tag_list = params . tag_list ; }
89+
90+ // Create a file object
91+ this . create ( createParams , function ( err , createResult ) {
92+ if ( err ) {
93+ callback ( err , null ) ;
94+ } else {
95+ var uri = parseUri ( createResult . blob_object_access . params ) ;
96+ var uploadUrl = uri . protocol + "://" + uri . authority + uri . path ;
97+ var uploadParams = { url : uploadUrl } ;
98+
99+ var data = isBrowser ? new FormData ( ) : { } ;
100+
101+ fileId = createResult . id ;
102+
103+ Object . keys ( uri . queryKey ) . forEach ( function ( val ) {
104+ if ( isBrowser ) {
105+ data . append ( val , decodeURIComponent ( uri . queryKey [ val ] ) ) ;
106+ } else {
107+ data [ val ] = decodeURIComponent ( uri . queryKey [ val ] ) ;
108+ }
109+ } ) ;
110+
111+ if ( isBrowser ) {
112+ data . append ( 'file' , file , createResult . name ) ;
113+ } else {
114+ data . file = file ;
115+ }
116+
117+ uploadParams . data = data ;
118+
119+ // Upload the file to Amazon S3
120+ _this . upload ( uploadParams , function ( err , result ) {
121+ if ( err ) {
122+ callback ( err , null ) ;
123+ } else {
124+ // Mark file as uploaded
125+ _this . markUploaded ( {
126+ id : fileId ,
127+ size : size
128+ } , function ( err , result ) {
129+ if ( err ) {
130+ callback ( err , null ) ;
131+ } else {
132+ callback ( null , createResult ) ;
133+ }
134+ } ) ;
135+ }
136+ } ) ;
137+ }
138+ } ) ;
139+ } ,
140+ upload : function ( params , callback ) {
141+ Utils . QBLog ( '[ContentProxy]' , 'upload' ) ;
142+
143+ var uploadParams = {
144+ type : 'POST' ,
145+ dataType : 'text' ,
146+ contentType : false ,
147+ processData : false ,
148+ url : params . url ,
149+ data : params . data
150+ } ;
151+
152+ this . service . ajax ( uploadParams , function ( err , xmlDoc ) {
153+ console . info ( 'Upload' , uploadParams ) ;
154+ if ( err ) {
155+ callback ( err , null ) ;
156+ } else {
157+ callback ( null , { } ) ;
158+ }
159+ } ) ;
160+ } ,
150161
151162 taggedForCurrentUser : function ( callback ) {
152163 Utils . QBLog ( '[ContentProxy]' , 'taggedForCurrentUser' ) ;
0 commit comments