E aí gente beleza mais um vídeo aqui sobre Gol a gente vai falar mais um pouquinho sobre o nosso projeto aqui do crude Beleza a gente vai criar conexão entre o nosso service e a nossa conexão em si do nosso banco de dados então no meio a gente precisa ter uma ponte como que eu vou fazer para minha regra de negócio e começar a conversar com o banco de dados é aí que vai entrar a nossa camada de repositre dentro da nossa aplicação Então vamos lá vamos criar nossa camada e repousite e começar a salvar
o nosso usuário no banco de dados [Música] então aqui no nosso projeto a gente parou no mundo de B Connection que retorna para a gente monta o DVD a base e um erro beleza então agora a gente vai vir aqui dentro de Controller ou na verdade dentro de modelo a gente vai criar uma pasta aqui dentro a gente vai chamar de repositri beleza aqui dentro de repous aí basicamente a gente vai criar as nossas configurações para cada tipo de cenário que a gente tem então a gente vai ter que criar aqui um Create user Vamos
colocar aqui critiezer repositor tá esse repositor aqui ele vai ser igual a gente estava querendo não ser assim por diante a gente vai colocar um pack de depository aqui do mesmo jeito e a gente vai fazer isso com todos os cenários que a gente vai ter uma Interface para implementar só que pra gente não ter que criar tudo vamos deixar só o Craft replay e a gente vai criar uma interface primeiro então aqui vai ser um user repositor só então a gente vai criar aqui o user positro vamos chamar ele de pack de repositruck também
e a gente vai criar um tipo que vai ser repositor que vai ser um tipo interface Beleza a gente vai ter interface aqui dentro como essa interface a gente vai ter que pedir aqui para o service para ele enviar para gente que que a gente tem de informação a gente tem o Wesley também que a gente vai poder enviar para frente certo e a única informação que a gente tem basicamente Então a gente vai ter que pedir só o isord também mas como assim eu tava eu reposito ele vem receber também ele não tem querer
não teria que fazer um service só que aqui não serve se vocês concordam que o service tem no user doman faz muito mais sentido ele enviar também e o repositor que é o único que precisa doente de transformar em índice para poder salvar numa quantidade e depois retornado banco de dados sem lente Então faz muito mais sentido a gente enviar e usar também para frente e fazer a conversão dentro do repositório do que o inverso Beleza então deixa aí nos comentários se você não concordar qualquer coisa que vocês acharem que pode mudar vamos deixar aí
nos comentários que ajuda bastante a gente pode acabar até mandando essa estrutura do projeto porque pode fazer muito sentido o comentário ou alguma dica de alguém Beleza então mas vamos continuar assim por enquanto então aqui não ia usar repositor a gente vai ter um cliente e user Beleza então a gente vai um cara chamado creatchuser então basicamente a gente vai receber o isordman que vai ser do tipo Model ponto e user Dome interface é isso que a gente vai receber aqui dentro e aí a gente vai retornar para pessoa que chamou a nossa função um
model.io interface vírgula um ponteiro destruars direct.rash erro beleza porque isso que a gente precisa saber retornar para pessoa inclusive no nosso service a gente tem que mudar aqui para assistir Ah já está RST Então não precisa mudar não Beleza então eu repositor está aqui do jeito que a gente precisa Então a gente vai copiar agora essa função aqui que a gente criou vamos ver no nosso repositório e vamos implementar ela a gente vai colar aqui esse cara vão importar e aí a gente precisa criar aqui também uma função Então a gente vai criar repor que
vai ser mais stract então com o minúsculo vai ser do tipo stract beleza Só que essa stract agora é diferente de todas as outras que a gente criou a gente precisa de uma dependência e qual é a dependência que eu reposito ele tem o que que o repositor ele precisa para vai funcionar na conexão com banco de dados Então a gente vai colocar aqui um dele a base dele a base Connection beleza vamos criar aqui um cara lirabesconection que basicamente vai vir a partir de ponteiro de mongo Ponto beira-base beleza então aqui dentro agora a
gente vai ter uma função que vai ser um New youser repositre beleza que vai receber o que por parâmetro um deleira base que vai ser do tipo ponteiro de mongo ponto dele é base então aqui a gente vai basicamente falar que a gente vai retornar um isler repositri que a interface e a gente vai dar um retorn e comercial e usar que é o objeto beleza passando teria base por parâmetro que é o que a gente tem aqui na mão né pra gente retornar para poder abrir isso Beleza só que aqui ele não vai deixar
por enquanto porque a gente não está não está implementando a função Então a gente vai copiar essa stract vamos vir aqui na outra função vamos colar aqui vamos colocar aqui em a partir dele vai ser implementado e ele já repositrem só que a gente precisa da variável Então vamos colocar aqui o r por exemplo e se vir aqui na nossa função Agora se a gente der um R ponto basicamente a gente vai ter acesso à aldeia base Connection Então a gente vai ter acesso à nossa conexão tanto que você der um ponto aqui vai ter
lágrimate Claire Clint Collection é assim por diante Beleza então a gente tem tudo que a gente precisa aqui dentro do nosso repositor agora basicamente a gente vai começar a criar nossa função então já que é o Crate user a gente vai começar é criar basicamente a nossa função para poder fazer o Create user aqui a gente poderia criar um ente a partir disso é criar um ente digital mas pensem comigo vamos pensar o seguinte se a gente criou o entity aqui basicamente quais Campos doente teria e-mail password name age e o enter e o ID
no caso que a gente vai criar que o ID ele vai ser criado a partir da nova desse novo método que a gente tá criando né só que agora pensa o seguinte se eu criar um ET aqui eu vou ter que converter também pra enche e enche Para eles ver também só que vocês concordam que são os mesmos Campos vocês acham que a gente faz sentido eu queria essa conversão Vamos fazer um pouquinho mais rápido aqui vamos fazer direto e user doman vamos salvar direto com as informações que a gente retorna também mas para frente
se fizer sentido a gente muda para entity que que vocês acham deixem nos comentários também a gente vai seguindo assim porque eu acho que faz mais sentido quando o entity tem alguma informação que a gente não pode ter no doman aí faz sentido fazer essa conversão mas quando é idêntico os dois objetos vai só mudar o nome eu acho que faz sentido manter também tá mas posso estar errado qualquer coisa deixa aí nos comentários também então qual é a primeira coisa que a gente vai fazer aqui a gente vai colocar primeiro o nosso logger né
pra gente ter as informações a gente vai dar um vlogger.info Vamos colocar aqui em Nite Create e user repositor e nem decrete user repositor aqui por exemplo depois a gente coloca a jornada de arminha aqui dentro Tá bom então agora a gente vai entrar numa nova linha agora a gente precisa do seguinte aqui dentro de um r a gente tem o dele é bem execution só que a gente precisa de uma Collection então aqui a gente vai basicamente criar Collection aqui pegar a Collection que a gente vai utilizar a partir de URBS e Connection ponto
Collection beleza e é de onde vai vir essa Collection da nossa variável de ambiente certo então aqui a gente vai colocar Collection online name vai vir a partir de IOS e a gente vai pegar daqui de dentro Então a nossa propriedade é mongoser DB Então a gente vai criar agora mundo DB e user Collection Beleza então vai se chamar também users tá bom então a gente vai pegar esse valor vamos vir aqui dentro e vamos colar aqui esse cara só que antes a gente vai fazer o seguinte vamos criar aqui uma constante né que vai
colar a partir desse cara e agora a gente cola aqui no gatinho e agora aqui no Collection a gente simplesmente coloca Collection ponto nem underline underline name né no caso então beleza A gente tem a informação da Collection tem informação do banco de dados temos tudo agora então vamos para o código que a gente vai realmente salvar no banco de dados então agora com todas as informações a gente vai fazer seguinte a gente vai dar um Collection um ponto insert One que no caso a gente precisa inserir apenas um usuário certo ele vai pedir algumas
informações aqui ele vai pedir o contexto aqui a gente não tá trabalhando com contexto ainda a gente pode colocar com um texto mais para frente quando a gente começar a trabalhar por exemplo com Tai malte com observar bilhete por exemplo com yegher algumas coisas assim tá mas por enquanto a gente não tem então a gente pode colocar um condux.background mesmo com texto vazio aí a gente cai num problema aqui do seguinte no instante o ano a gente pode passar qualquer valor aqui para dentro só que o nosso objeto o nosso ilusão ele é uma interface
assim dizendo né Ele é uma interface então a gente teria que criar um objeto get né migatte não sei o quê não sei o que lá para poder fazer todo o Jason aqui que a gente precisar então toda vez que a gente teria que fazer isso só que querem ver algo legal que a gente pode criar aqui dentro aquiezer também tá vendo que nós se ver também ele é um objeto privado e os nossos Campos aqui dentro são Campos privados né só que se a gente vir aqui colocar por exemplo a tag Jason aqui dentro
então a gente colocar aqui por exemplo a tag Jason de e-mail então ele vai reclamar aqui que o camp e-mail tá com a tag Jason mas a o e-mail não é exportado ainda não tá sendo exportado porque o e aqui no começo tá como minúsculo então ele é um campo privado assim dizendo né só que olha o que que acontece eu não quero exportar e usar doman para ninguém fora eu não quero que ninguém fiquem fora consiga utilizar e nós se usar doman ele não ninguém tem acesso a ele ninguém consegue pegar esses doman porque
a única coisa acessível aqui dentro também é na hora que chama o News também ele retorna uma interface que tem os métodos e nunca usou também ou seja também ele não é acessado ainda não tem como ele ser acessado então o que que a gente pode fazer aqui quando a gente coloca o a primeira letra maiúscula aqui dentro Então a primeira letra sendo maiúscula mas o objeto sendo privado ou seja o objeto é privado mas os campos não são o que que acontece o meu objeto ele nunca vai acessar vai ser acessado assim como ele
não está sendo só que ele consegue ser exportado para Jason por exemplo vamos Eu até queria aqui um código para mostrar para vocês então aqui vocês podem ver o seguinte eu queria aqui um Type user Strike que tem os campos name e age que são do tipo string28 que a Street user tem o minúsculo ou seja privada e aqui tem o campo nem me com n maiúsculo Ou seja é exportado e o age com a minúsculo ou seja não é exportado então cria um objeto aqui passando os valores e passo para Jason na hora que
eu executa esse código Olha o que que acontece só aparece a propriedade name que é a única que tá com o n maiúsculo no caso é aí que tá sendo exportada só que se eu tiro esse n e coloca o minúsculo também então alterar aqui embaixo também para name seu executar ele roda um Jason vazio então se eu colocar aqui nem maiúsculo e ex maiúsculo na hora que eu executar aqui esse Ram é que ele deu erro porque eu não troquei aqui onde eu tô inserindo o valor então na hora que eu dei um aqui
ele vai aparecer as duas mesmo com o objeto sendo privado então a gente consegue utilizar esse cara então o que que a gente vai fazer Vamos pegar esse código aqui embaixo tá Vocês já vão ver como vai funcionar e a gente vai criar uma nova função aqui que vai se chamar o d a partir de user doman beleza que vai se chamar get Jason vale por exemplo beleza aqui poderia ser string você pode fazer string aqui dentro também quando você precisar assim por diante vocês podem fazer o que acharem melhor Beleza então aqui a gente
vai ter um get Jason valem E aí aqui dentro a gente vai colar esse código então basicamente a gente vai dar um Jason Marshall passando aqui para esse cara tá então quem que é o Jason Marshall a gente vai dar um Jason marsha a partir de u d certo então a partir do nosso objeto d a gente vai dar um Jason Marshall aqui a gente vai dar se der algum problema no caso a gente vai ter que ter aqui um error né no caso pra ser possível a gente retornar se a casa de algum problema
tá então a gente vai ter que ter aqui um erro então a gente vai tornar uma string vazia vírgula o err que a gente retornou beleza e aqui dentro a gente vai basicamente fazer o seguinte vai dar um return string b então a gente vai dar um stringfire nesse Jason vírgula nulo que no caso é o que a gente não quer retornar erro nesse caso Tá bom então aqui ele vai dar alguns problemas porque a gente trocou aqui a primeira a inicial pra maiúscula Então vou só trocar aqui e já volto então agora voltando aqui
depois de tudo alterado aqui para e-mail tudo maiúsculo aqui bonitinho aqui no nosso repositre a gente vai basicamente fazer o seguinte a gente vai ter aqui o nosso ilusar doman beleza só que aqui A gente esqueceu de colocar esse campo lá dentro esse valor lá dentro tá então aqui a gente vai criar um get colocar aqui o get que a gente criou né então get Jason valor então a gente vai colar aqui esse cara vamos colar aqui que é Jason falou que retorna uma string e um erro beleza então a gente vai ter aqui esse
cara e a partir dele a gente vai dar um easer também ponto get Jason falou e aqui dentro para a gente poder fazer isso só que agora como ele retorna um erro a gente precisa validar Então a gente vai fazer o seguinte a gente vai fazer um if valor erro recebe ponto gatease valer erro diferente de nulo beleza E se o erro for diferente de nulo Se der algum problema a gente vai dar um retorn New vírgula 1000 então orash né New interna aqui no caso então a gente jogar aqui New internacional Beleza então agora
com esse valor e aqui aqui O único problema da gente ter feito isso é porque a gente não consegue mais pegar esse valor porque ele fica fechado ao escopo Então vamos tirar ele daqui vamos colocar esse aqui e vamos jogar esse Safe para baixo agora com o valor em mãos a gente pode vir aqui do lado e simplesmente colocar aqui valor e a gente vai estar inserindo aqui o usuário beleza e ele certinho Ele não pede mais nada além disso a não ser que você queira colocar alguma opção tá a gente não vai colocar então
agora a gente consegue colocar aqui reset vírgula e RR Beleza então a gente consegue pegar o resto aqui do que aconteceu vamos copiar aqui esse código esse erro aqui que aconteceu beleza vamos colar aqui essa validação e aqui nesse Resort agora a gente vai fazer o seguinte a gente consegue fazer um resto de ponto e a gente consegue pegar o incerto de ID a gente consegue pegar qual ID desse cara para isso a gente precisa inserir esse aí no nosso domingo né então a gente precisa Qual o ID que foi inserido lá dentro então vamos
entrar aqui no nosso servidor doman e a gente vai criar aqui as funções de 7 agora então a gente vai ter o sete ID beleza que vai receber aqui uma string Beleza então a gente vai ter o site aí de que vai ter o a função aqui fundo que vai receber o ID por string E aí aqui dentro do nosso isordman agora basicamente a gente vai ter que criar o nosso campo aí de né então a gente vai ter que o ID que vai partir do string e aqui dentro a gente vai basicamente fazer o
seguinte vamos copiar aqui o nosso também vamos copiar vamos vir aqui em cima vamos colar ele aqui então na verdade ele não tá conseguindo colar vou colocar aí também e aí que a gente vai dar um UD ponto aí de recebe aí de que a gente colocou pro parâmetro E aí que ele vai dar um problema do seguinte a gente tá passando os valores aqui tudo chumbado a gente pode colocar aqui uma um valor vazio aqui tá a gente pode fazer desse jeito aqui se vocês quiserem ou você pode criar os campos nomeados tá Que
eu acho que fica até melhor tá então você pode vir aqui colocar e-mail recebe no meio aí você colocar password recebe de password colocar name recebe de name e a gente coloca age recebe de age Beleza a gente não precisa colocar as aspas vazias em lugar nenhum aqui dentro do user doman beleza e aqui no fim do método a gente vai basicamente colocar aqui antes do resort a gente vai colocar usurdo também Ponto 7 aí Dick no caso é o que a gente precisa certo então aqui a gente vai colocar o resto de ponto em
cerca de depois de inserido no caso aquele vai dar erro a gente precisa fazer então aqui ele vai dar um erro ele vai reclamar porque o Islã dele é um do tipo interface então a gente pode vir aqui no fim e colocar um ponto abre aspas string beleza pra gente poder fazer essa conversão em cerca de ir pra stream Então como tudo feito agora basicamente a gente pode fazer um re Turner e os ardoman vírgula que no caso não deu nenhum problema aqui dentro e a gente tem o nosso reposito ele praticamente pronto a gente
só precisa mexer nos nossos vlogs agora e conectar com o nosso service beleza aqui no nosso repositor ele tá dando erro ainda porque eu coloquei as aqui é comercial tá por isso que tava dando erro então agora nosso código não tá dando erro nenhum erro no próximo vídeo a gente vai conectar agora nesse nosso repositor que o nosso service começar a testar a criação do usuário finalizar a criação do usuário Beleza então Voltamos no próximo vídeo em Gol aqui para finalizar essa parte desse primeiro fluxo espero que vocês tenham gostado e nos vemos no próximo
vídeo em Gol até a próxima falou