@@ -6,20 +6,19 @@ const loadTemplate = require('../loadTemplate')
6
6
const getOwnedBy = require ( '../query/ownedBy' )
7
7
8
8
module . exports = function ( req , res ) {
9
- const { graphUri, uri, share } = getUrisFromReq ( req , res )
9
+ const { graphUri, uri, url } = getUrisFromReq ( req , res )
10
10
11
11
return getOwnedBy ( uri , graphUri ) . then ( ( ownedBy ) => {
12
12
if ( ownedBy . indexOf ( config . get ( 'databasePrefix' ) + 'user/' + req . user . username ) === - 1 ) {
13
- res . status ( 401 ) . send ( 'not authorized to remove an owner' )
13
+ return res . status ( 401 ) . send ( 'Not authorized to remove an owner' )
14
14
}
15
15
16
- return retrieveUris ( uri , graphUri ) . then ( uris => {
16
+ return retrieveUris ( uri , graphUri ) . then ( ( uris ) => {
17
17
let chunks = [ ]
18
18
let offset = config . get ( 'resolveBatch' )
19
19
20
20
for ( let i = 0 ; i < uris . length ; i += offset ) {
21
21
let end = i + offset < uris . length ? i + offset : uris . length
22
-
23
22
chunks . push ( uris . slice ( i , end ) )
24
23
}
25
24
@@ -30,22 +29,33 @@ module.exports = function (req, res) {
30
29
31
30
console . log ( sharedRemovalQuery )
32
31
33
- return sparql . updateQuery ( sharedRemovalQuery , req . body . userUri ) . then ( result => {
34
- return Promise . all ( chunks . map ( chunk => {
35
- let uris = chunk . map ( uri => {
36
- return '<' + uri + '> sbh:ownedBy <' + req . body . userUri + '>'
37
- } ) . join ( ' . \n' )
38
-
39
- const updateQuery = loadTemplate ( './sparql/RemoveOwnedBy.sparql' , {
40
- uris : uris
41
- } )
42
- console . log ( updateQuery )
43
-
44
- return sparql . updateQuery ( updateQuery , graphUri ) . then ( ( ) => {
45
- res . redirect ( share )
46
- } )
47
- } ) )
48
- } )
32
+ return sparql . updateQuery ( sharedRemovalQuery , req . body . userUri )
33
+ . then ( ( ) => {
34
+ return Promise . all (
35
+ chunks . map ( ( chunk ) => {
36
+ let uris = chunk
37
+ . map ( ( uri ) => `<${ uri } > sbh:ownedBy <${ req . body . userUri } >` )
38
+ . join ( ' . \n' )
39
+
40
+ const updateQuery = loadTemplate ( './sparql/RemoveOwnedBy.sparql' , { uris } )
41
+ console . log ( updateQuery )
42
+
43
+ return sparql . updateQuery ( updateQuery , graphUri )
44
+ } )
45
+ )
46
+ } )
47
+ . then ( ( ) => {
48
+ // Redirect only once after all promises resolve
49
+ if ( ! req . accepts ( 'text/html' ) ) {
50
+ res . status ( 200 ) . send ( 'Success' )
51
+ } else {
52
+ res . redirect ( url )
53
+ }
54
+ } )
55
+ . catch ( ( err ) => {
56
+ console . error ( 'Error:' , err )
57
+ res . status ( 500 ) . send ( `Error removing ownership: ${ err . message } ` )
58
+ } )
49
59
} )
50
60
} )
51
61
}
0 commit comments