diff --git a/src/resources/attendance/attendanceDocs.yml b/src/resources/attendance/attendanceDocs.yml index 415038429fd2ad78a06de5a416dfeaca35590352..9dd6814942e54c9478b87f15c3b1fec44fc99353 100644 --- a/src/resources/attendance/attendanceDocs.yml +++ b/src/resources/attendance/attendanceDocs.yml @@ -91,7 +91,7 @@ components: properties: activity: type: string - description: cuid of each attendance + description: cuid of the activity user: type: string description: schacc of the user diff --git a/src/resources/mentor/__tests__/mentorFuncTest.js b/src/resources/mentor/__tests__/mentorFuncTest.js index 00fd2e0e0fb1113d0abf5b32c7c983726aae4349..ac116aea0e867783b39fbc4d1ac91817edf3982f 100644 --- a/src/resources/mentor/__tests__/mentorFuncTest.js +++ b/src/resources/mentor/__tests__/mentorFuncTest.js @@ -4,27 +4,26 @@ const { merge, has } = require('lodash') const { validateKeys } = require('../../../utils/testHelpers') const { User } = require('../../user/userModel') -const {Mentor}= require('../mentorModel') +const { Mentor } = require('../mentorModel') const endpointUrl = '/api/v1/mentor' const fakeUserJson = { - internal_id: 'fakeId', - schacc: 'fakeUser', - fullName: 'faker Janos', - secondaryEmail: 'faker@fake.com', - } -let fakeMentorsJson={ - user:fakeUserJson.schacc, - description:'Legjobb mentor ever', - } - const defaultKeys={ - _id:true, - user:true, - description:true, - - } + internal_id: 'fakeId', + schacc: 'fakeUser', + fullName: 'faker Janos', + secondaryEmail: 'faker@fake.com', +} +let fakeMentorsJson = { + user: fakeUserJson.schacc, + description: 'Legjobb mentor ever', +} +const defaultKeys = { + _id: true, + user: true, + description: true, +} - describe('/mentor "Mentor" Functionality', () => { +describe('/mentor "Mentor" Functionality', () => { let authSession // Login as mentor beforeEach(async function (done) { @@ -35,58 +34,60 @@ let fakeMentorsJson={ return done() }) }) - //readone - test(`GET existing mentor`, async () => { - const newMentor = await Mentor.create(fakeMentorsJson) - let response = await authSession.get(`${endpointUrl}/${newMentor._id}`) - expect(response.statusCode).toBe(200) - }) - test('GET invalid mentor',async()=>{ - let response=await authSession.get(`${endpointUrl}/almafa`) - expect(response.statusCode).toBe(422) - }) - // Get Many - test(`GET many returns with allowed keys`, async () => { - await Mentor.create(fakeMentorsJson) - await Mentor.create(fakeMentorsJson) - let response = await authSession.get(endpointUrl) - expect(response.statusCode).toBe(200) - response.body.data.forEach((eachData) => { - validateKeys(eachData, defaultKeys) - }) - }) - // Create - test(`Create mentor`, async () => { - const newUser = await User.create(fakeUserJson) - const newMentor = await Mentor.create(fakeMentorsJson) - let response =await authSession.post(`${endpointUrl}/`).send({ - user:newUser.schacc, - description:'Legjobb mentor ever', - }) - expect(response.statusCode).toBe(201) - validateKeys(response.body.data, defaultKeys) - }) - //Update - test(`Update mentor`,async()=>{ - const newMentor=await Mentor.create(fakeMentorsJson) - let response=await authSession - .put(`${endpointUrl}/${newMentor._id}`) - .send({ - description:'updateddescription', - }) - expect(response.statusCode).toBe(200) - expect(response.body.data.description).toBe('updateddescription') - }) - //Delete - test(`Delete mentor`,async ()=>{ - const newMentor = await Mentor.create(fakeMentorsJson) - let response=await authSession.delete(`${endpointUrl}/${newMentor._id}`) - expect(response.statusCode).toBe(200) - }) - }) - //Nem számít az ,hogy melyikkel teszteled mert mind2nak ugyan olyannak kell lennie. + //readone + test(`GET existing mentor`, async () => { + const newMentor = await Mentor.create(fakeMentorsJson) + let response = await authSession.get(`${endpointUrl}/id/${newMentor._id}`) + expect(response.statusCode).toBe(200) + }) + test('GET invalid mentor', async () => { + let response = await authSession.get(`${endpointUrl}/id/almafa`) + expect(response.statusCode).toBe(422) + }) + // Get Many + test(`GET many returns with allowed keys`, async () => { + await Mentor.create(fakeMentorsJson) + await Mentor.create(fakeMentorsJson) + let response = await authSession.get(endpointUrl) + expect(response.statusCode).toBe(200) + response.body.data.forEach((eachData) => { + validateKeys(eachData, defaultKeys) + }) + }) + // Create + test(`Create mentor`, async () => { + const newUser = await User.create(fakeUserJson) + const newMentor = await Mentor.create(fakeMentorsJson) + let response = await authSession.post(`${endpointUrl}/`).send({ + user: newUser.schacc, + description: 'Legjobb mentor ever', + }) + expect(response.statusCode).toBe(201) + validateKeys(response.body.data, defaultKeys) + }) + //Update + test(`Update mentor`, async () => { + const newMentor = await Mentor.create(fakeMentorsJson) + let response = await authSession + .put(`${endpointUrl}/id/${newMentor._id}`) + .send({ + description: 'updateddescription', + }) + expect(response.statusCode).toBe(200) + expect(response.body.data.description).toBe('updateddescription') + }) + //Delete + test(`Delete mentor`, async () => { + const newMentor = await Mentor.create(fakeMentorsJson) + let response = await authSession.delete( + `${endpointUrl}/id/${newMentor._id}` + ) + expect(response.statusCode).toBe(200) + }) +}) +//Nem számít az ,hogy melyikkel teszteled mert mind2nak ugyan olyannak kell lennie. //normal=accepted - describe('/mentor "Accepted" Functionality', () => { +describe('/mentor "Accepted" Functionality', () => { let authSession // Login as accepted and create a group beforeEach(async function (done) { @@ -97,26 +98,25 @@ let fakeMentorsJson={ return done() }) }) - //readone - test(`GET existing mentor`, async () => { - const newUser= await User.create(fakeUserJson) - const newMentor = await Mentor.create(fakeMentorsJson) - let response = await authSession.get(`${endpointUrl}/${newMentor._id}`) - expect(response.statusCode).toBe(200) - }) - test('GET invalid mentor',async()=>{ - let response=await authSession.get(`${endpointUrl}/almafa`) - expect(response.statusCode).toBe(422) - }) - // Get Many - test(`GET many returns with allowed keys`, async () => { - await Mentor.create(fakeMentorsJson) - await Mentor.create(fakeMentorsJson) - let response = await authSession.get(endpointUrl) - expect(response.statusCode).toBe(200) - response.body.data.forEach((eachData) => { - validateKeys(eachData, defaultKeys) - }) - }) - + //readone + test(`GET existing mentor`, async () => { + const newUser = await User.create(fakeUserJson) + const newMentor = await Mentor.create(fakeMentorsJson) + let response = await authSession.get(`${endpointUrl}/id/${newMentor._id}`) + expect(response.statusCode).toBe(200) + }) + test('GET invalid mentor', async () => { + let response = await authSession.get(`${endpointUrl}/id/almafa`) + expect(response.statusCode).toBe(422) + }) + // Get Many + test(`GET many returns with allowed keys`, async () => { + await Mentor.create(fakeMentorsJson) + await Mentor.create(fakeMentorsJson) + let response = await authSession.get(endpointUrl) + expect(response.statusCode).toBe(200) + response.body.data.forEach((eachData) => { + validateKeys(eachData, defaultKeys) + }) + }) }) diff --git a/src/resources/mentor/__tests__/mentorPermTest.js b/src/resources/mentor/__tests__/mentorPermTest.js index e2edcc6933f692f6052eaf6a4e704dec87755673..9618c35560e0c69d05b74999133edce6e6d362e5 100644 --- a/src/resources/mentor/__tests__/mentorPermTest.js +++ b/src/resources/mentor/__tests__/mentorPermTest.js @@ -11,13 +11,28 @@ const fakeMentorJson = { } describe('/mentor Permission tests', () => { + crudPermTest( + app, + endpointUrl + '/id', + Mentor, + 'mentor', + fakeMentorJson, + [false, false, true, true, true], + [ + // [role, create, readAll, readOne, update, delete] + ['none', false, false, false, false, false], + ['normal', false, true, true, false, false], + ['accepted', false, true, true, false, false], + ['mentor', true, true, true, true, true], + ] + ) crudPermTest( app, endpointUrl, Mentor, 'mentor', fakeMentorJson, - [true, true, true, true, true], + [true, true, false, false, false], [ // [role, create, readAll, readOne, update, delete] ['none', false, false, false, false, false], diff --git a/src/resources/mentor/mentorDocs.yml b/src/resources/mentor/mentorDocs.yml new file mode 100644 index 0000000000000000000000000000000000000000..14669b5cb32f20c2f6230b6907594c5ea74f66a0 --- /dev/null +++ b/src/resources/mentor/mentorDocs.yml @@ -0,0 +1,99 @@ +openapi: '3.0.2' +info: + title: 'Mentor Endpoint' + version: '1.0' + +paths: + /mentor: + get: + tags: + - 'Mentor' + summary: 'Get a List of mentors' + description: 'Have to be logged in.' + operationId: 'getAllMentor' + responses: + '200': + description: OK + content: + application/json: + schema: + type: 'array' + items: + $ref: '#/components/schemas/Mentor' + post: + tags: + - 'Mentor' + summary: 'Create a mentor' + description: 'Have to be mentor for this.' + operationId: 'createMentor' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Mentor' + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/Mentor' + /mentor/id/{id}: + get: + tags: + - 'Mentor' + summary: 'Get a mentor by ID' + description: 'Have to be logged in for this.' + operationId: 'getMentor' + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/Mentor' + put: + tags: + - 'Mentor' + summary: 'Update a mentor by ID' + description: 'Only mentors can update a mentor.' + operationId: 'updateOneMentor' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Mentor' + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/Mentor' + delete: + tags: + - 'Mentor' + summary: 'Delete a mentor by ID' + description: 'Only mentors can delete a mentor.' + operationId: 'deleteMentor' + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/Mentor' + +components: + schemas: + Mentor: + type: object + properties: + user: + type: string + description: schacc of the user + description: + type: string + required: + - user + - description diff --git a/src/resources/mentor/mentorRouter.js b/src/resources/mentor/mentorRouter.js index 860a015d3e787de86be115e0bbad955f98ca0eb5..a3f0c19d8abe5f4f73a33af0ab645776ebc5aa9f 100644 --- a/src/resources/mentor/mentorRouter.js +++ b/src/resources/mentor/mentorRouter.js @@ -5,15 +5,15 @@ const { isLoggedIn, isMentor } = require('../../middlewares/auth') const router = Router() -// /api/item +// /api/v1/mentor router .route('/') .get(isLoggedIn, controllers.default.getMany) .post(isLoggedIn, isMentor, controllers.default.createOne) -// /api/item/:id +// /api/v1/mentor/id/:id router - .route('/:id') + .route('/id/:id') .get(isLoggedIn, controllers.default.getOne) .put(isLoggedIn, isMentor, controllers.default.updateOne) .delete(isLoggedIn, isMentor, controllers.default.removeOne)