[ Duvida ] Estou desenvolvendo uma API para meu Front-End em AdonisJS e não sei aonde adicionar funções que não fazem parte do controller

Um problema que tenho enfrentado é que eu não sei organizar o código externo do controller, por exemplo, minha API em AdonisJS será uma ponte entre um Front-End e a TuyaAPI para controlar dispositivos inteligentes.

A Biblioteca da TuyaAPI possui os métodos necessários para fazer o request para ligar/desligar as lampadas por exemplo, e eu não sei aonde inserir essas funçoes, o que eu faço atualmente é colocar toda a logica que não vai ser usada no controller em uma pasta "services" e exporto de lá a funçao para utilizar nos controladores.

Qual seria a melhor forma de lidar com isso? Todo curso que vi sobre sempre ficava alternando entre Controller, Routes e Model, e nunca algo fora disso, por isso me sinto perdido dessa forma...

Não sou nenhum especialista mas... eu organizaria em um pasta chamada "helpers" ou "utils" se são funções que voce pode usar em 2 ou + controllers diferentes! Se vai usar num controller só, talvez não precise se preocupar com isso agora e evitar o overengineering, saca?

Como falaram no comentário anterior, você pode ter uma pasta lib ou utils. Mas antes disso, o controller não deve ter lógica. Toda regra de negócio fica nos models. Model não serve só pra banco de dados. Então a sua lógica de conexão com o tuya pode ficar lá também.

Obrigado, seu comentario ajudou em muito em minha aplicaçao
Então vai outra dica pra você: saia do adonis enquanto ainda está no começo. Vá para Nestjs. Eu fiz isso no início do ano e não me arrependo. Hoje eu fico com agonia quando preciso dar manutenção em algum projeto com Adonis.
Ainda não conheço sobre esse NestJS, eu trabalho com Laravel, e quando procurei algo em Javascript que fosse semelhante achei o Adonis. Gostei por conta do TypeScript, linguagem que já trabalho com VueJS.
Huumm.. É mesmo! Adonis é muito parecido com Laravel. Tão parecido que uma vez tive uma dúvida que não achei na documentação de Adonis, fui para a documentação do Laravel e achei. Mas isso eu falo da versão 4. Ia migrar para a versão 5 mas algumas coisas que eu precisava não estavam prontas e resolvi partir para o Nest. E isso foi complicado pois marcaram a versão 4 como legada sem concluir a 5. Isso foi foda. Mas beleza. Boa sorte!
Obrigado amigo! Anotarei o NestJS para procurar sobre o mesmo em um futuro proximo, obrigado por seus comentarios, tenha uma boa semana!