mirror of
https://github.com/sismics/docs.git
synced 2024-11-22 14:07:55 +01:00
Fix error handling on DELETE /share/id
This commit is contained in:
parent
2abf0c6eab
commit
745766a2c3
@ -91,12 +91,16 @@ public class ShareResource extends BaseResource {
|
|||||||
// Get the share
|
// Get the share
|
||||||
ShareDao shareDao = new ShareDao();
|
ShareDao shareDao = new ShareDao();
|
||||||
DocumentDao documentDao = new DocumentDao();
|
DocumentDao documentDao = new DocumentDao();
|
||||||
Share share;
|
Share share = shareDao.getShare(id);
|
||||||
|
if (share == null) {
|
||||||
|
throw new ClientException("ShareNotFound", MessageFormat.format("Share not found: {0}", id));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check that the user is the owner of the linked document
|
||||||
try {
|
try {
|
||||||
share = shareDao.getShare(id);
|
|
||||||
documentDao.getDocument(share.getDocumentId(), principal.getId());
|
documentDao.getDocument(share.getDocumentId(), principal.getId());
|
||||||
} catch (NoResultException e) {
|
} catch (NoResultException e) {
|
||||||
throw new ClientException("ShareNotFound", MessageFormat.format("Share not found: {0}", id));
|
throw new ClientException("DocumentNotFound", MessageFormat.format("Document not found: {0}", share.getDocumentId()));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Delete the share
|
// Delete the share
|
||||||
|
@ -109,6 +109,16 @@ public class TestShareResource extends BaseJerseyTest {
|
|||||||
byte[] fileBytes = ByteStreams.toByteArray(is);
|
byte[] fileBytes = ByteStreams.toByteArray(is);
|
||||||
Assert.assertEquals(163510, fileBytes.length);
|
Assert.assertEquals(163510, fileBytes.length);
|
||||||
|
|
||||||
|
// Deletes the share (not allowed)
|
||||||
|
clientUtil.createUser("share2");
|
||||||
|
String share2AuthenticationToken = clientUtil.login("share2");
|
||||||
|
shareResource = resource().path("/share/" + share1Id);
|
||||||
|
shareResource.addFilter(new CookieAuthenticationFilter(share2AuthenticationToken));
|
||||||
|
response = shareResource.delete(ClientResponse.class);
|
||||||
|
Assert.assertEquals(Status.BAD_REQUEST, Status.fromStatusCode(response.getStatus()));
|
||||||
|
json = response.getEntity(JSONObject.class);
|
||||||
|
Assert.assertEquals("DocumentNotFound", json.getString("type"));
|
||||||
|
|
||||||
// Deletes the share
|
// Deletes the share
|
||||||
shareResource = resource().path("/share/" + share1Id);
|
shareResource = resource().path("/share/" + share1Id);
|
||||||
shareResource.addFilter(new CookieAuthenticationFilter(share1AuthenticationToken));
|
shareResource.addFilter(new CookieAuthenticationFilter(share1AuthenticationToken));
|
||||||
@ -117,5 +127,12 @@ public class TestShareResource extends BaseJerseyTest {
|
|||||||
json = response.getEntity(JSONObject.class);
|
json = response.getEntity(JSONObject.class);
|
||||||
Assert.assertEquals("ok", json.getString("status"));
|
Assert.assertEquals("ok", json.getString("status"));
|
||||||
|
|
||||||
|
// Deletes the share again
|
||||||
|
shareResource = resource().path("/share/" + share1Id);
|
||||||
|
shareResource.addFilter(new CookieAuthenticationFilter(share1AuthenticationToken));
|
||||||
|
response = shareResource.delete(ClientResponse.class);
|
||||||
|
Assert.assertEquals(Status.BAD_REQUEST, Status.fromStatusCode(response.getStatus()));
|
||||||
|
json = response.getEntity(JSONObject.class);
|
||||||
|
Assert.assertEquals("ShareNotFound", json.getString("type"));
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user