diff --git a/dbs/social_ma.mv.db b/dbs/social_ma.mv.db index 9a69659..afb04b2 100644 Binary files a/dbs/social_ma.mv.db and b/dbs/social_ma.mv.db differ diff --git a/server/services/register.post.js b/server/services/register.post.js index e69de29..3a48bb2 100644 --- a/server/services/register.post.js +++ b/server/services/register.post.js @@ -0,0 +1,54 @@ + +const name = _req.getString("name") +const surname = _req.getString("surname") +const username = _req.getString("username") +const password = _req.getString("password") +const email = _req.getString("email") +const cityUid = _req.getString("city_uid") + +const dbCidade = _db.get("cidade", cityUid) + +const emailExists = _user.firstByMail(email) +const usernameExists = _user.firstByUser(username) + +if (dbCidade == null) { + _header.status(409) + _out.json( + _val.map() + .set("error", true) + .set("message", "city-not-found") + ) +} else if (emailExists != null) { + _out.json( + _val.map() + .set("result", false) + .set("error", "email-exists") + ) +} else if (usernameExists != null) { + _out.json( + _val.map() + .set("result", false) + .set("error", "user-exists") + ) +} else { + const group = _group.firstByCode("user") + const user_id = _user.create( + _val.map() + .set("name", `${name} ${surname}`) + .set("user", username) + .set("pass", password) + .set("mail", email) + .set("group_id", group.getInt("id")) + ) + _db.insertIfNotExists( + 'pessoa', + _val.map() + .set("nome", name) + .set("sobrenome", surname) + .set("email", email) + .set("cidade_id", dbCidade.getInt("id")) + .set("usuario_id", user_id) + ) + _log.info("Novo usuario criado com o id: "+ user_id) + _out.json(_val.map().set("result", true)) +} diff --git a/server/setup/_schema-form-3-pessoa.js b/server/setup/_schema-form-3-pessoa.js index 1de81aa..c313629 100644 --- a/server/setup/_schema-form-3-pessoa.js +++ b/server/setup/_schema-form-3-pessoa.js @@ -20,10 +20,12 @@ _form.createIfNotExists( .set("export_xls", true) .set("export_xml", true) .set("firebase", "") + .set("group_uid", "4cb2df92-ddae-4426-b054-50b53b5eec6f") .set("name", "pessoa") .set("report", false) .set("show_id", true) .set("uid", "262e9f17-3d70-4067-b28d-bafc98f56d80") + .set("user_uid", "658660bc-efe4-4236-8114-31cd19fc3c80") ) _form.createComponentIfNotExists( "262e9f17-3d70-4067-b28d-bafc98f56d80", @@ -55,36 +57,6 @@ _form.createComponentIfNotExists( .set("x", 1) .set("y", 4) ) -_form.createComponentIfNotExists( - "262e9f17-3d70-4067-b28d-bafc98f56d80", - _val.init() - .set("colspan", 0) - .set("displayname", "Comunidades") - .set("firebase", "") - .set("group_id", 0) - .set("height", 0) - .set("max", 0) - .set("min", 0) - .set("name", "comunidades") - .set("notnull", false) - .set("primarykey", false) - .set("properties", "{\"ITEM_SEPARATOR\":{\"default\":\" # \",\"type\":\"STRING\",\"value\":\" # \"},\"MAX_COLUMN_LENGTH\":{\"default\":\"0\",\"type\":\"INTEGER\",\"value\":\"0\"},\"COLUMN_SEPARATOR\":{\"default\":\" - \",\"type\":\"LINK_SEPARATOR\",\"value\":\" - \"},\"REFERENCE\":{\"default\":\"\",\"type\":\"LINK\",\"value\":\"pessoa_comunidade:pessoa_id\"},\"LINK\":{\"default\":\"\",\"type\":\"LINK\",\"value\":\"pessoa_comunidade:comunidade_id\"},\"SERVICE\":{\"default\":\"com/MultiSelect.netuno\",\"type\":\"STRING\",\"value\":\"com/MultiSelect.netuno\"},\"ONLY_ACTIVES\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"}}") - .set("rowspan", 0) - .set("tdheight", 0) - .set("tdwidth", 0) - .set("type", "multiselect") - .set("uid", "d12270ba-79f3-403c-ac20-ad5297d4efe2") - .set("user_id", 0) - .set("whenedit", true) - .set("whenexport", true) - .set("whenfilter", false) - .set("whennew", true) - .set("whenresult", false) - .set("whenview", true) - .set("width", 0) - .set("x", 1) - .set("y", 5) -) _form.createComponentIfNotExists( "262e9f17-3d70-4067-b28d-bafc98f56d80", _val.init() @@ -186,7 +158,7 @@ _form.createComponentIfNotExists( .set("max", 0) .set("min", 0) .set("name", "usuario_id") - .set("notnull", false) + .set("notnull", true) .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) diff --git a/website/src/pages/Register/index.js b/website/src/pages/Register/index.js index 5fa146a..cb66eec 100644 --- a/website/src/pages/Register/index.js +++ b/website/src/pages/Register/index.js @@ -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'; @@ -31,7 +31,41 @@ export default ()=> { }, []); const onFinish = (values) => { - console.log('Success:', values); + _service({ + method: 'POST', + url: "register", + data: values, + success: (response) => { + if (response.json) { + const { result, error } = response.json; + if (result === true) { + notification["success"]({ + message: 'Conta criada com Sucesso', + description: 'A sua conta foi criada com sucesso, pode efetuar o login.', + }); + } else if (error) { + if (error == "email-exists") { + notification["error"]({ + message: 'E-mail já existe', + description: 'O e-mail já foi registrado.', + }); + } else if (error == "user-exists") { + notification["error"]({ + message: 'Usuário já existe', + description: 'O usuário já foi registrado.', + }); + } + } + } + }, + fail: (e) => { + console.log("Service Error", e); + notification["error"]({ + message: 'Não foi possível Criar a Conta', + description: 'Tente mais tarde.', + }); + } + }); }; const onFinishFailed = (errorInfo) => {