Skip to content

Commit

Permalink
fix swagger response types
Browse files Browse the repository at this point in the history
  • Loading branch information
wermarter committed Jan 26, 2024
1 parent 9bc5a63 commit 33a3748
Show file tree
Hide file tree
Showing 30 changed files with 291 additions and 212 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { Expose, Type } from 'class-transformer'
import { ValidateNested } from 'class-validator'

import { BioProductCreateRequestDto } from './create.request-dto'
import { Branch, exampleBioProduct } from 'src/domain'
import { exampleBioProduct } from 'src/domain'
import { BranchUnpopulatedResponseDto } from '../../branch/dto/response-dto'

export class BioProductUnpopulatedResponseDto extends IntersectionType(
Expand All @@ -20,5 +20,5 @@ export class BioProductResponseDto extends BioProductUnpopulatedResponseDto {
})
@ValidateNested({ each: true })
@Type(() => BranchUnpopulatedResponseDto)
branch?: Branch
branch?: BranchUnpopulatedResponseDto
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,10 @@ import { HttpStatus, RequestMethod } from '@nestjs/common'
import { CustomHttpRouteOptions } from '@diut/nest-core'

import { BioProductSearchResponseDto } from './dto/search.response-dto'
import { BioProductResponseDto } from './dto/response-dto'
import {
BioProductResponseDto,
BioProductUnpopulatedResponseDto,
} from './dto/response-dto'

export const bioProductRoutes = {
search: {
Expand All @@ -21,11 +24,11 @@ export const bioProductRoutes = {

create: {
method: RequestMethod.POST,
serialize: BioProductResponseDto,
serialize: BioProductUnpopulatedResponseDto,
openApi: {
responses: [
{
type: BioProductResponseDto,
type: BioProductUnpopulatedResponseDto,
status: HttpStatus.CREATED,
},
],
Expand All @@ -35,11 +38,11 @@ export const bioProductRoutes = {
updateById: {
path: ':id',
method: RequestMethod.PATCH,
serialize: BioProductResponseDto,
serialize: BioProductUnpopulatedResponseDto,
openApi: {
responses: [
{
type: BioProductResponseDto,
type: BioProductUnpopulatedResponseDto,
},
],
},
Expand All @@ -61,11 +64,11 @@ export const bioProductRoutes = {
deleteById: {
path: ':id',
method: RequestMethod.DELETE,
serialize: BioProductResponseDto,
serialize: BioProductUnpopulatedResponseDto,
openApi: {
responses: [
{
type: BioProductResponseDto,
type: BioProductUnpopulatedResponseDto,
},
],
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { Expose, Type } from 'class-transformer'
import { IsArray, ValidateNested } from 'class-validator'

import { BranchCreateRequestDto } from './create.request-dto'
import { Branch, exampleBranch } from 'src/domain'
import { exampleBranch } from 'src/domain'

export class BranchUnpopulatedResponseDto extends IntersectionType(
BaseResourceResponseDto,
Expand All @@ -15,13 +15,10 @@ export class BranchResponseDto extends BranchUnpopulatedResponseDto {
@Expose()
@ApiProperty({
...exampleBranch.sampleOrigins,
type: () =>
class OmittedBranchResponseDto extends OmitType(BranchResponseDto, [
'sampleOrigins',
]) {},
type: () => BranchUnpopulatedResponseDto,
})
@IsArray()
@ValidateNested({ each: true })
@Type(() => BranchResponseDto)
sampleOrigins?: (Branch | null)[]
@Type(() => BranchUnpopulatedResponseDto)
sampleOrigins?: BranchUnpopulatedResponseDto[]
}
17 changes: 10 additions & 7 deletions apps/hcdc-access-service/src/presentation/http/v1/branch/routes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,10 @@ import { HttpStatus, RequestMethod } from '@nestjs/common'
import { CustomHttpRouteOptions } from '@diut/nest-core'

import { BranchSearchResponseDto } from './dto/search.response-dto'
import { BranchResponseDto } from './dto/response-dto'
import {
BranchResponseDto,
BranchUnpopulatedResponseDto,
} from './dto/response-dto'

export const branchRoutes = {
search: {
Expand All @@ -21,11 +24,11 @@ export const branchRoutes = {

create: {
method: RequestMethod.POST,
serialize: BranchResponseDto,
serialize: BranchUnpopulatedResponseDto,
openApi: {
responses: [
{
type: BranchResponseDto,
type: BranchUnpopulatedResponseDto,
status: HttpStatus.CREATED,
},
],
Expand All @@ -35,11 +38,11 @@ export const branchRoutes = {
updateById: {
path: ':id',
method: RequestMethod.PATCH,
serialize: BranchResponseDto,
serialize: BranchUnpopulatedResponseDto,
openApi: {
responses: [
{
type: BranchResponseDto,
type: BranchUnpopulatedResponseDto,
},
],
},
Expand All @@ -61,11 +64,11 @@ export const branchRoutes = {
deleteById: {
path: ':id',
method: RequestMethod.DELETE,
serialize: BranchResponseDto,
serialize: BranchUnpopulatedResponseDto,
openApi: {
responses: [
{
type: BranchResponseDto,
type: BranchUnpopulatedResponseDto,
},
],
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ import { Expose, Type } from 'class-transformer'
import { ValidateNested } from 'class-validator'

import { DiagnosisCreateRequestDto } from './create.request-dto'
import { Branch, exampleDiagnosis } from 'src/domain'
import { BranchResponseDto } from '../../branch/dto/response-dto'
import { exampleDiagnosis } from 'src/domain'
import { BranchUnpopulatedResponseDto } from '../../branch/dto/response-dto'

export class DiagnosisUnpopulatedResponseDto extends IntersectionType(
BaseResourceResponseDto,
Expand All @@ -14,8 +14,11 @@ export class DiagnosisUnpopulatedResponseDto extends IntersectionType(

export class DiagnosisResponseDto extends DiagnosisUnpopulatedResponseDto {
@Expose()
@ApiProperty({ ...exampleDiagnosis.branch, type: () => BranchResponseDto })
@ApiProperty({
...exampleDiagnosis.branch,
type: () => BranchUnpopulatedResponseDto,
})
@ValidateNested({ each: true })
@Type(() => BranchResponseDto)
branch?: Branch
@Type(() => BranchUnpopulatedResponseDto)
branch?: BranchUnpopulatedResponseDto
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,10 @@ import { HttpStatus, RequestMethod } from '@nestjs/common'
import { CustomHttpRouteOptions } from '@diut/nest-core'

import { DiagnosisSearchResponseDto } from './dto/search.response-dto'
import { DiagnosisResponseDto } from './dto/response-dto'
import {
DiagnosisResponseDto,
DiagnosisUnpopulatedResponseDto,
} from './dto/response-dto'

export const diagnosisRoutes = {
search: {
Expand All @@ -21,11 +24,11 @@ export const diagnosisRoutes = {

create: {
method: RequestMethod.POST,
serialize: DiagnosisResponseDto,
serialize: DiagnosisUnpopulatedResponseDto,
openApi: {
responses: [
{
type: DiagnosisResponseDto,
type: DiagnosisUnpopulatedResponseDto,
status: HttpStatus.CREATED,
},
],
Expand All @@ -35,11 +38,11 @@ export const diagnosisRoutes = {
updateById: {
path: ':id',
method: RequestMethod.PATCH,
serialize: DiagnosisResponseDto,
serialize: DiagnosisUnpopulatedResponseDto,
openApi: {
responses: [
{
type: DiagnosisResponseDto,
type: DiagnosisUnpopulatedResponseDto,
},
],
},
Expand All @@ -61,11 +64,11 @@ export const diagnosisRoutes = {
deleteById: {
path: ':id',
method: RequestMethod.DELETE,
serialize: DiagnosisResponseDto,
serialize: DiagnosisUnpopulatedResponseDto,
openApi: {
responses: [
{
type: DiagnosisResponseDto,
type: DiagnosisUnpopulatedResponseDto,
},
],
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ import { Expose, Type } from 'class-transformer'
import { ValidateNested } from 'class-validator'

import { DoctorCreateRequestDto } from './create.request-dto'
import { Branch, exampleDoctor } from 'src/domain'
import { BranchResponseDto } from '../../branch/dto/response-dto'
import { exampleDoctor } from 'src/domain'
import { BranchUnpopulatedResponseDto } from '../../branch/dto/response-dto'

export class DoctorUnpopulatedResponseDto extends IntersectionType(
BaseResourceResponseDto,
Expand All @@ -14,8 +14,11 @@ export class DoctorUnpopulatedResponseDto extends IntersectionType(

export class DoctorResponseDto extends DoctorUnpopulatedResponseDto {
@Expose()
@ApiProperty({ ...exampleDoctor.branch, type: () => BranchResponseDto })
@ApiProperty({
...exampleDoctor.branch,
type: () => BranchUnpopulatedResponseDto,
})
@ValidateNested({ each: true })
@Type(() => BranchResponseDto)
branch?: Branch
@Type(() => BranchUnpopulatedResponseDto)
branch?: BranchUnpopulatedResponseDto
}
17 changes: 10 additions & 7 deletions apps/hcdc-access-service/src/presentation/http/v1/doctor/routes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,10 @@ import { HttpStatus, RequestMethod } from '@nestjs/common'
import { CustomHttpRouteOptions } from '@diut/nest-core'

import { DoctorSearchResponseDto } from './dto/search.response-dto'
import { DoctorResponseDto } from './dto/response-dto'
import {
DoctorResponseDto,
DoctorUnpopulatedResponseDto,
} from './dto/response-dto'

export const doctorRoutes = {
search: {
Expand All @@ -21,11 +24,11 @@ export const doctorRoutes = {

create: {
method: RequestMethod.POST,
serialize: DoctorResponseDto,
serialize: DoctorUnpopulatedResponseDto,
openApi: {
responses: [
{
type: DoctorResponseDto,
type: DoctorUnpopulatedResponseDto,
status: HttpStatus.CREATED,
},
],
Expand All @@ -35,11 +38,11 @@ export const doctorRoutes = {
updateById: {
path: ':id',
method: RequestMethod.PATCH,
serialize: DoctorResponseDto,
serialize: DoctorUnpopulatedResponseDto,
openApi: {
responses: [
{
type: DoctorResponseDto,
type: DoctorUnpopulatedResponseDto,
},
],
},
Expand All @@ -61,11 +64,11 @@ export const doctorRoutes = {
deleteById: {
path: ':id',
method: RequestMethod.DELETE,
serialize: DoctorResponseDto,
serialize: DoctorUnpopulatedResponseDto,
openApi: {
responses: [
{
type: DoctorResponseDto,
type: DoctorUnpopulatedResponseDto,
},
],
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ import { Expose, Type } from 'class-transformer'
import { ValidateNested } from 'class-validator'

import { InstrumentCreateRequestDto } from './create.request-dto'
import { Branch, exampleInstrument } from 'src/domain'
import { BranchResponseDto } from '../../branch/dto/response-dto'
import { exampleInstrument } from 'src/domain'
import { BranchUnpopulatedResponseDto } from '../../branch/dto/response-dto'

export class InstrumentUnpopulatedResponseDto extends IntersectionType(
BaseResourceResponseDto,
Expand All @@ -14,8 +14,11 @@ export class InstrumentUnpopulatedResponseDto extends IntersectionType(

export class InstrumentResponseDto extends InstrumentUnpopulatedResponseDto {
@Expose()
@ApiProperty({ ...exampleInstrument.branch, type: () => BranchResponseDto })
@ApiProperty({
...exampleInstrument.branch,
type: () => BranchUnpopulatedResponseDto,
})
@ValidateNested({ each: true })
@Type(() => BranchResponseDto)
branch?: Branch
@Type(() => BranchUnpopulatedResponseDto)
branch?: BranchUnpopulatedResponseDto
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,10 @@ import { HttpStatus, RequestMethod } from '@nestjs/common'
import { CustomHttpRouteOptions } from '@diut/nest-core'

import { InstrumentSearchResponseDto } from './dto/search.response-dto'
import { InstrumentResponseDto } from './dto/response-dto'
import {
InstrumentResponseDto,
InstrumentUnpopulatedResponseDto,
} from './dto/response-dto'

export const instrumentRoutes = {
search: {
Expand All @@ -21,11 +24,11 @@ export const instrumentRoutes = {

create: {
method: RequestMethod.POST,
serialize: InstrumentResponseDto,
serialize: InstrumentUnpopulatedResponseDto,
openApi: {
responses: [
{
type: InstrumentResponseDto,
type: InstrumentUnpopulatedResponseDto,
status: HttpStatus.CREATED,
},
],
Expand All @@ -35,11 +38,11 @@ export const instrumentRoutes = {
updateById: {
path: ':id',
method: RequestMethod.PATCH,
serialize: InstrumentResponseDto,
serialize: InstrumentUnpopulatedResponseDto,
openApi: {
responses: [
{
type: InstrumentResponseDto,
type: InstrumentUnpopulatedResponseDto,
},
],
},
Expand All @@ -61,11 +64,11 @@ export const instrumentRoutes = {
deleteById: {
path: ':id',
method: RequestMethod.DELETE,
serialize: InstrumentResponseDto,
serialize: InstrumentUnpopulatedResponseDto,
openApi: {
responses: [
{
type: InstrumentResponseDto,
type: InstrumentUnpopulatedResponseDto,
},
],
},
Expand Down
Loading

0 comments on commit 33a3748

Please sign in to comment.