const ValorNaoSuportado = require('./erros/ValorNaoSuportado')
class Serializador {
json(dados) {
return JSON.stringify(dados)
}
serializar (dados){
if (this.contentType === 'application/json')
return this.json(
this.filtrarObjeto(dados)
)
throw new ValorNaoSuportado(this.contentType)
}
filtrarObjeto (dados){
const novoObjeto = {}
console.log(this.camposPublicos)
console.log(dados)
this.camposPublicos.forEach((campo, index) => {
console.log(dados.hasOwnProperty(campo))
if (dados.hasOwnProperty(campo)) {
novoObjeto[campo] = dados[campo]
}
})
return novoObjeto
}
}
class SerializadorFornecedor extends Serializador {
constructor(contentType) {
super()
this.contentType = contentType
this.camposPublicos = ['id', 'empresa', 'categoria']
}
}
module.exports = {
Serializador: Serializador,
SerializadorFornecedor: SerializadorFornecedor,
formatosAceitos: ['application/json', '*/*']
}