11import bodyParser from 'body-parser'
22import debugModule from 'debug'
3- const debug = debugModule ( 'solid:put' )
3+ const debugPut = debugModule ( 'solid:put' )
44import { getContentType , stringToStream } from '../utils.mjs'
55import HTTPError from '../http-error.mjs'
66
77export default async function handler ( req , res , next ) {
8- debug ( req . originalUrl )
98 // deprecated kept for compatibility
109 res . header ( 'MS-Author-Via' , 'SPARQL' ) // is this needed ?
1110 const contentType = req . get ( 'content-type' )
@@ -35,7 +34,7 @@ function isAuxiliary (req) {
3534}
3635
3736async function putValidRdf ( req , res , next ) {
38- debug ( 'Parsing RDF for ' + req . originalUrl )
37+ debugPut ( 'Parsing RDF for ' + req . originalUrl )
3938 const ldp = req . app . locals . ldp
4039 const contentType = getContentType ( req . headers ) || 'text/turtle'
4140
@@ -44,16 +43,16 @@ async function putValidRdf (req, res, next) {
4443 req . body = stringToStream ( req . body )
4544 return putResource ( req , res , next )
4645 } catch ( err ) {
47- debug ( `Invalid RDF file: ${ req . originalUrl } - ${ err } ` )
46+ debugPut ( `Invalid RDF file: ${ req . originalUrl } - ${ err } ` )
4847 return next ( HTTPError ( 400 , `Invalid RDF file: ${ err } ` ) )
4948 }
5049}
5150
5251async function putResource ( req , res , next ) {
5352 const ldp = req . app . locals . ldp
5453 const contentType = getContentType ( req . headers )
55- debug ( 'Request ' + req . originalUrl )
56- debug ( 'content-type is' , contentType )
54+ debugPut ( 'Request ' + req . originalUrl )
55+ debugPut ( 'content-type is' , contentType )
5756
5857 // check whether a folder or resource with same name exists
5958 try {
@@ -65,23 +64,24 @@ async function putResource (req, res, next) {
6564 const stream = req
6665 const result = await putStream ( ldp , req , res , stream , contentType )
6766 res . set ( 'MS-Author-Via' , 'SPARQL' ) // ??? really?
67+ console . log ( 'PUT result code:' , result )
6868 if ( result === 201 ) {
69- debug ( 'new file created' )
69+ debugPut ( 'new file created' )
7070 res . sendStatus ( result )
7171 } else {
72- debug ( 'file updated' )
72+ debugPut ( 'file updated' )
7373 res . sendStatus ( result )
7474 }
7575 next ( )
7676 } catch ( e ) {
77- debug ( 'putResource error:' + e . status + ' ' + e . message )
77+ debugPut ( 'putResource error:' + e . status + ' ' + e . message )
7878 next ( e )
7979 }
8080}
8181
82- function putStream ( ldp , req , res , stream , contentType ) {
82+ async function putStream ( ldp , req , res , stream , contentType ) {
8383 const uri = res . locals . target . url
84- return new Promise ( ( resolve , reject ) => {
84+ /* return new Promise((resolve, reject) => {
8585 ldp.put(req, res, uri, contentType, stream, (err, result) => {
8686 if (err) {
8787 debug('putResource error:' + err.status + ' ' + err.message)
@@ -91,5 +91,14 @@ function putStream (ldp, req, res, stream, contentType) {
9191 }
9292 resolve(result)
9393 })
94- } )
94+ }) */
95+ try {
96+ return await ldp . put ( uri , stream , contentType ) ;
97+ } catch ( err ) {
98+ debugPut ( 'putResource error:' + err . status + ' ' + err . message ) ;
99+ err . status = err . status || 500
100+ err . message = err . message || 'Unknown error'
101+ throw err
102+ }
103+
95104}
0 commit comments