Skip to content
Snippets Groups Projects
Commit e2320212 authored by Rémi PAILHAREY's avatar Rémi PAILHAREY :fork_knife_plate:
Browse files

feat: personal offers section in profile

parent 13d54d94
No related branches found
No related tags found
4 merge requests!247V2.1.0,!242V2.0,!218Feat/us191 section mon offre de service,!127V2.0
......@@ -67,6 +67,17 @@ describe('PersonalOffersController', () => {
});
describe('create personal offer', () => {
it('should return 204 if personal offer is empty', async () => {
const req = { user: { _id: '6036721022462b001334c4bb' } };
try {
await controller.create(req, createPersonalOffersDtoDataMock[3]);
// Fail test if above expression doesn't throw anything.
expect(true).toBe(false);
} catch (e) {
expect(e.message).toBe('Empty personal offer');
expect(e.status).toBe(204);
}
});
it('should create personal offer for existing user and structure', async () => {
const req = { user: { _id: '6036721022462b001334c4bb' } };
expect(await controller.create(req, createPersonalOffersDtoDataMock[0])).toEqual(personalOffersDataMock[0]);
......
import { Body, Controller, Delete, Get, Param, Post, Put, Request, UseGuards } from '@nestjs/common';
import {
Body,
Controller,
Delete,
Get,
HttpException,
HttpStatus,
Param,
Post,
Put,
Request,
UseGuards,
} from '@nestjs/common';
import { ApiBody, ApiParam, ApiTags } from '@nestjs/swagger';
import { JwtAuthGuard } from '../auth/guards/jwt-auth.guard';
import { StructuresService } from '../structures/services/structures.service';
......@@ -43,6 +55,10 @@ export class PersonalOffersController {
@Body() createPersonalOfferDto: CreatePersonalOfferDto
): Promise<PersonalOfferDocument> {
const user: IUser = req.user;
const isEmpty = Object.values(createPersonalOfferDto.personalOffer.categories).every((value) => value.length === 0);
if (isEmpty) {
throw new HttpException('Empty personal offer', HttpStatus.NO_CONTENT);
}
const personalOfferDocument: PersonalOfferDocument = await this.personalOffersService.create(
createPersonalOfferDto
);
......
......@@ -5,7 +5,7 @@ import { PersonalOffer } from '../../../src/personal-offers/schemas/personal-off
export const personalOffersDtoDataMock: PersonalOfferDto[] = [
{
categories: {
onlineProcedures: [],
onlineProcedures: ['caf', 'cpam'],
baseSkills: [],
advancedSkills: [],
},
......@@ -33,6 +33,13 @@ export const personalOffersDtoDataMock: PersonalOfferDto[] = [
advancedSkills: [],
},
},
{
categories: {
onlineProcedures: [],
baseSkills: [],
advancedSkills: [],
},
},
];
export const createPersonalOffersDtoDataMock: CreatePersonalOfferDto[] = [
......@@ -48,6 +55,10 @@ export const createPersonalOffersDtoDataMock: CreatePersonalOfferDto[] = [
structureId: '6093ba0e2ab5775cfc01fffe',
personalOffer: personalOffersDtoDataMock[0],
},
{
structureId: '6093ba0e2ab5775cfc01ed3e',
personalOffer: personalOffersDtoDataMock[2],
},
];
export const updatePersonalOffersDtoDataMock: PersonalOfferDto[] = [
......@@ -87,7 +98,7 @@ export const personalOffersDataMock: PersonalOffer[] = [
{
_id: '1234ba0e2ab5775cfc01ed3e',
categories: {
onlineProcedures: [],
onlineProcedures: ['caf', 'cpam'],
baseSkills: [],
advancedSkills: [],
},
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment