· 6 years ago · Jun 22, 2019, 08:50 AM
1class UserController {
2 async store({ request }) {
3 //Buscamos os campos do corpo da nossa requisição e os armazenamos em um objeto chamado data;
4 const data = request.only([
5 "name",
6 "last_name",
7 "date_birth",
8 "cpf",
9 "cep",
10 "address",
11 "uf",
12 "city",
13 "cellphone",
14 "phone",
15 "email",
16 "password"
17 ]);
18
19 //Criamos um novo usuário repassando os parâmetros vindos da requisição e salvamos esse novo usuário em uma variável user;
20 const user = await User.create(data);
21
22 //Criando os dados de configuração do usuário
23 await user.configuration().create({ user_id: user.id });
24
25 //Retornamos o novo usuário como resultado da requisição, como selecionamos, no nosso caso o retorno será um JSON.
26 return user;
27 }
28
29/** @type {import('@adonisjs/framework/src/Hash')} */
30const Hash = use("Hash");
31
32/** @type {import('@adonisjs/lucid/src/Factory')} */
33const Factory = use("Factory");
34
35Factory.blueprint("App/Models/Plan", async faker => {
36 return {
37 name: faker.name(),
38 description: "testes",
39 price: 20.99
40 };
41});
42
43Factory.blueprint("App/Models/User", async faker => {
44 return {
45 plan_id: 1,
46 name: faker.name(),
47 email: faker.name() + "@gmail.com",
48 password: await Hash.make(faker.password())
49 };
50});
51
52Factory.blueprint("App/Models/Configuration", async faker => {
53 return {
54 user_id: <-----Caso eu insira um valor fixo aqui é criado dois registros no banco um com o ID inserido e outro com ID original do usuario.
55 };
56});
57
58class ConfigurationSeeder {
59 async run() {
60 await Factory.model("App/Models/Configuration").create();
61 }
62}
63
64----------------------------------------------------------------------
65
66class UserSeeder {
67 async run() {
68 const user = await Factory.model("App/Models/User").create();
69 console.log(user);
70 }
71}
72
73----------------------------------------------------------------------
74
75class PlanSeeder {
76 async run() {
77 await Factory.model("App/Models/Plan").create();
78 }