diff --git a/api/v1/controllers/aspects.js b/api/v1/controllers/aspects.js index a6f60c7427..7631db09ed 100644 --- a/api/v1/controllers/aspects.js +++ b/api/v1/controllers/aspects.js @@ -134,8 +134,7 @@ module.exports = { .then((usrs) => { doPostAssoc(req, res, next, helper, helper.belongsToManyAssoc.users, usrs); - }) - .catch((err) => u.handleError(next, err, helper.modelName)); + }); }, // postAspectWriters /** diff --git a/api/v1/controllers/lenses.js b/api/v1/controllers/lenses.js index 6c20dc8189..2722ee5bd8 100644 --- a/api/v1/controllers/lenses.js +++ b/api/v1/controllers/lenses.js @@ -257,8 +257,7 @@ module.exports = { .then((usrs) => { doPostAssoc(req, res, next, helper, helper.belongsToManyAssoc.users, usrs); - }) - .catch((err) => u.handleError(next, err, helper.modelName)); + }); }, // postLensWriters /** diff --git a/api/v1/controllers/perspectives.js b/api/v1/controllers/perspectives.js index 8e5c2a75af..5fc83ff219 100644 --- a/api/v1/controllers/perspectives.js +++ b/api/v1/controllers/perspectives.js @@ -114,8 +114,7 @@ module.exports = { .then((o) => { const retval = u.responsify(o, helper, req.method); res.status(httpStatus.OK).json(retval); - }) - .catch((err) => u.handleError(next, err, helper.modelName)); + }); }, // getPerspectiveWriters /** diff --git a/api/v1/controllers/subjects.js b/api/v1/controllers/subjects.js index d36d219c6a..e9118ffa03 100644 --- a/api/v1/controllers/subjects.js +++ b/api/v1/controllers/subjects.js @@ -271,8 +271,7 @@ module.exports = { .then((usrs) => { doPostAssoc(req, res, next, helper, helper.belongsToManyAssoc.users, usrs); - }) - .catch((err) => u.handleError(next, err, helper.modelName)); + }); }, // postSubjectWriters /** diff --git a/api/v1/swagger.yaml b/api/v1/swagger.yaml index 694e874ee5..5b1f588dcc 100644 --- a/api/v1/swagger.yaml +++ b/api/v1/swagger.yaml @@ -1003,6 +1003,8 @@ paths: $ref: "#/responses/401" 403: $ref: "#/responses/403" + 404: + $ref: "#/responses/404" default: $ref: "#/responses/genericError" @@ -1783,6 +1785,8 @@ paths: $ref: "#/responses/401" 403: $ref: "#/responses/403" + 404: + $ref: "#/responses/404" default: $ref: "#/responses/genericError" @@ -2430,6 +2434,8 @@ paths: $ref: "#/responses/401" 403: $ref: "#/responses/403" + 404: + $ref: "#/responses/404" default: $ref: "#/responses/genericError" # --------------------------------------------------------------------------- @@ -4574,6 +4580,8 @@ paths: $ref: "#/responses/401" 403: $ref: "#/responses/403" + 404: + $ref: "#/responses/403" default: $ref: "#/responses/genericError" diff --git a/tests/api/v1/aspects/getWriters.js b/tests/api/v1/aspects/getWriters.js index 3b626ac243..6692f38f34 100644 --- a/tests/api/v1/aspects/getWriters.js +++ b/tests/api/v1/aspects/getWriters.js @@ -144,6 +144,20 @@ describe('api: aspects: get writer(s)', () => { }); }); + it('Writer not found for invalid resource but valid writers', (done) => { + api.get(getWriterPath.replace('{key}', 'invalidresource') + .replace('{userNameOrId}', user.id)) + .set('Authorization', token) + .expect(constants.httpStatus.NOT_FOUND) + .end((err /* , res */) => { + if (err) { + done(err); + } + + done(); + }); + }); + it('Writer not found for invalid username', (done) => { api.get(getWriterPath.replace('{key}', aspect.name) .replace('{userNameOrId}', 'invalidUser')) diff --git a/tests/api/v1/lenses/getWriters.js b/tests/api/v1/lenses/getWriters.js index 321e4c2ea8..758afc9a0e 100644 --- a/tests/api/v1/lenses/getWriters.js +++ b/tests/api/v1/lenses/getWriters.js @@ -133,6 +133,20 @@ describe('api: lenses: get writers}', () => { }); }); + it('Writer not found for invalid resource but valid writers', (done) => { + api.get(getWriterPath.replace('{key}', 'invalidresource') + .replace('{userNameOrId}', user.id)) + .set('Authorization', token) + .expect(constants.httpStatus.NOT_FOUND) + .end((err /* , res */) => { + if (err) { + done(err); + } + + done(); + }); + }); + it('Writer not found for invalid username', (done) => { api.get(getWriterPath.replace('{key}', lens.name) .replace('{userNameOrId}', 'invalidUser')) diff --git a/tests/api/v1/perspectives/getWriters.js b/tests/api/v1/perspectives/getWriters.js index 2bf1ca5690..7cff50d672 100644 --- a/tests/api/v1/perspectives/getWriters.js +++ b/tests/api/v1/perspectives/getWriters.js @@ -143,6 +143,20 @@ describe('api: perspective: get writers', () => { }); }); + it('Writer not found for invalid resource but valid writers', (done) => { + api.get(getWriterPath.replace('{key}', 'invalidresource') + .replace('{userNameOrId}', user.id)) + .set('Authorization', token) + .expect(constants.httpStatus.NOT_FOUND) + .end((err /* , res */) => { + if (err) { + done(err); + } + + done(); + }); + }); + it('Writer not found for invalid username', (done) => { api.get(getWriterPath.replace('{key}', perspective.name) .replace('{userNameOrId}', 'invalidUser')) diff --git a/tests/api/v1/subjects/getWriters.js b/tests/api/v1/subjects/getWriters.js index 4ffffbdcd9..2ffa1abd8e 100644 --- a/tests/api/v1/subjects/getWriters.js +++ b/tests/api/v1/subjects/getWriters.js @@ -140,6 +140,20 @@ describe('api: subjects: get writers}', () => { }); }); + it('Writer not found for invalid resource but valid writers', (done) => { + api.get(getWriterPath.replace('{key}', 'invalidresource') + .replace('{userNameOrId}', user.id)) + .set('Authorization', token) + .expect(constants.httpStatus.NOT_FOUND) + .end((err /* , res */) => { + if (err) { + done(err); + } + + done(); + }); + }); + it('Writer not found for invalid username', (done) => { api.get(getWriterPath.replace('{key}', subject.name) .replace('{userNameOrId}', 'invalidUser'))