IuryNogueira/myreef

View on GitHub
back/src/infra/controller/AquariumController.ts

Summary

Maintainability
A
0 mins
Test Coverage
import { Aquarium, Dimensions } from '../../domain/entity'
import { AquariumRepository } from 'domain/repository'
import { Http } from 'infra/http'
 
export class AquariumController {
constructor (
readonly http: Http,
readonly aquariumRepository: AquariumRepository
) {
http.on('get', '/aquariums', async () => {
const output = await aquariumRepository.list()
return output
})
 
http.on('post', '/aquariums', async (params: any, body: AddAquariumInput) => {
const newAquarium = new Aquarium(1, body.name, new Dimensions(body.dimensions.length, body.dimensions.width, body.dimensions.height))
const output = await aquariumRepository.save(newAquarium)
return output
})
}
}
 
interface AddAquariumInput {
name: string
dimensions: {
length: number
width: number
height: number
}
}