Não é bem uma dúvida, mas sim uma ajuda para quem passar pelo mesmo problema que eu. Da forma como a lógica foi implementada na solução da atividade, a resposta sempre vai retornar 406, mesmo que a requisição contenha o header de accept
como application/json
ou */*
. Isso porque a forma como a lógica foi feita implica que o header precisa conter ambas as formas permitidas ao mesmo tempo, e não uma das duas. Imagine que você envie o header com o valor de */*
, o indexOf
dele vai retornar 0 normalmente, mas a verificação para application/json
vai retornar -1, o que fará entrar dentro do if
, mesmo que a requisição esteja válida.
Para consertar, basta trocar o operador de ou por e, e então a única forma de retornar 406 é caso nenhuma das formas permitidas seja encontrada no header.
Como estava:
if (accept.indexOf(‘application/json’) === -1 || accept.indexOf(‘*/*’) === -1)
Como pode ser ajustado:
if (accept.indexOf(‘application/json’) === -1 && accept.indexOf(‘*/*’) === -1)
Espero ter ajudado alguém com o apontamento :)