Browse Source

Submissão do registo com criação do utilizador associado ao grupo específico e com o registo da pessoa.

master
eduveks 5 years ago
parent
commit
858543130e
7 changed files with 161 additions and 4 deletions
  1. BIN
      dbs/social_interno.mv.db
  2. +1
    -0
      server/services/public/register/options.js
  3. +61
    -0
      server/services/public/register/post.js
  4. +5
    -0
      server/setup/001-group.js
  5. +32
    -0
      server/setup/002-cidade.js
  6. +30
    -0
      server/setup/_schema-form-3-pessoa.js
  7. +32
    -4
      website/src/pages/Register/index.js

BIN
dbs/social_interno.mv.db View File


+ 1
- 0
server/services/public/register/options.js View File

@ -0,0 +1 @@
_out.json(_val.map().set("result", true))

+ 61
- 0
server/services/public/register/post.js View File

@ -0,0 +1,61 @@
const name = _req.getString("name")
const surname = _req.getString("surname")
const email = _req.getString("email")
const username = _req.getString("username")
const password = _req.getString("password")
const city_uid = _req.getString("city_uid")
const userEmailExists = _user.firstByMail(email)
const usernameExists = _user.firstByUser(username)
const dbCidade = _db.get("cidade", city_uid)
if (userEmailExists) {
_header.status(409)
_out.json(
_val.map()
.set("result", false)
.set("error", "email-exists")
)
} else if (usernameExists) {
_header.status(409)
_out.json(
_val.map()
.set("result", false)
.set("error", "username-exists")
)
} else if (dbCidade == null) {
_header.status(409)
_out.json(
_val.map()
.set("result", false)
.set("error", "city-not-found")
)
} else {
const dbNetunoGroup = _group.firstByCode("utilizador")
const user_id = _user.create(
_val.map()
.set("name", name)
.set("mail", email)
.set("user", username)
.set("pass", password)
.set("group_id", dbNetunoGroup.getInt("id"))
)
_db.insertIfNotExists(
"pessoa",
_val.map()
.set("nome", name)
.set("apelido", surname)
.set("email", email)
.set("cidade_id", dbCidade.getInt("id"))
.set("utilizador_id", user_id)
)
_out.json(
_val.map()
.set("result", true)
)
}

+ 5
- 0
server/setup/001-group.js View File

@ -0,0 +1,5 @@
_group.createIfNotExists(
_val.map()
.set("name", "Utilizador Comum")
.set("code", "utilizador")
)

+ 32
- 0
server/setup/002-cidade.js View File

@ -0,0 +1,32 @@
// -----------------------------------------------------------
//
// CIDADE
//
// -----------------------------------------------------------
//
// CODE GENERATED AUTOMATICALLY
//
_db.insertIfNotExists(
"cidade",
_val.init()
.set("uid", "606091f3-ec3e-42f7-a0b1-ee1eb5f7a3ce")
.set("nome", "Lisboa")
);
_db.insertIfNotExists(
"cidade",
_val.init()
.set("uid", "629c6068-ac2a-427a-969b-a85948ef154f")
.set("nome", "Montijo")
);
_db.insertIfNotExists(
"cidade",
_val.init()
.set("uid", "277ea7a2-6d16-4a89-8831-851177ef1471")
.set("nome", "Set\u00FAbal")
);

+ 30
- 0
server/setup/_schema-form-3-pessoa.js View File

@ -175,3 +175,33 @@ _form.createComponentIfNotExists(
.set("x", 1)
.set("y", 1)
)
_form.createComponentIfNotExists(
"cd6f536f-7e70-42cb-9c2d-f733a6c60a64",
_val.init()
.set("colspan", 0)
.set("displayname", "Utilizador")
.set("firebase", "")
.set("group_id", 0)
.set("height", 0)
.set("max", 0)
.set("min", 0)
.set("name", "utilizador_id")
.set("notnull", false)
.set("primarykey", false)
.set("properties", "{\"ALLOW_USER_LOGGED\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"GROUPS\":{\"default\":\"\",\"type\":\"STRING\",\"value\":\"\"},\"GROUPS_MODE\":{\"default\":\"all|exclude|only\",\"type\":\"CHOICE\",\"value\":\"all\"},\"USERS_MODE\":{\"default\":\"all|exclude|only\",\"type\":\"CHOICE\",\"value\":\"all\"},\"USERS\":{\"default\":\"\",\"type\":\"STRING\",\"value\":\"\"}}")
.set("rowspan", 0)
.set("tdheight", 0)
.set("tdwidth", 0)
.set("type", "user")
.set("uid", "08254eb0-76f7-4051-b73a-b7c31709fbee")
.set("user_id", 0)
.set("whenedit", true)
.set("whenexport", true)
.set("whenfilter", true)
.set("whennew", true)
.set("whenresult", true)
.set("whenview", true)
.set("width", 0)
.set("x", 1)
.set("y", 6)
)

+ 32
- 4
website/src/pages/Register/index.js View File

@ -1,6 +1,6 @@
import React, { useEffect, useState } from 'react';
import { Form, Input, Button, Select } from 'antd';
import { Form, Input, Button, Select, notification } from 'antd';
import _service from '@netuno/service-client';
@ -29,8 +29,27 @@ export default ()=> {
}, []);
const onFinish = (values) => {
console.log('Success:', values);
_service({
method: 'POST',
url: 'public/register',
data: values,
success: (response) => {
if (response.result) {
notification["success"]({
message: 'Registado',
description: 'Foi registado com sucesso.',
});
}
},
fail: (e) => {
console.error('Service Register Error', e);
notification["error"]({
message: 'Não Registado',
description: 'Não foi possível registar, tente mais tarde.',
});
}
});
};
const onFinishFailed = (errorInfo) => {
@ -60,6 +79,16 @@ export default ()=> {
<Input />
</Form.Item>
<Form.Item
label="E-mail"
name="email"
rules={[
{ required: true, message: 'Por favor insira o seu e-mail.' },
{ type: 'email', message: 'E-mail inválido.' }
]}
>
<Input />
</Form.Item>
<Form.Item
label="Utilizador"
name="username"
rules={[
@ -69,7 +98,6 @@ export default ()=> {
>
<Input />
</Form.Item>
<Form.Item
label="Password"
name="password"
@ -80,7 +108,7 @@ export default ()=> {
<Form.Item
label="Cidade"
name="city"
name="city_uid"
rules={[{ required: true, message: 'Por favor insira a sua cidade.' }]}
>
<Select allowClear>


Loading…
Cancel
Save