From 858543130ea04fa489f18b72c57183223e558919 Mon Sep 17 00:00:00 2001 From: eduveks Date: Tue, 8 Jun 2021 18:13:30 +0000 Subject: [PATCH] =?UTF-8?q?Submiss=C3=A3o=20do=20registo=20com=20cria?= =?UTF-8?q?=C3=A7=C3=A3o=20do=20utilizador=20associado=20ao=20grupo=20espe?= =?UTF-8?q?c=C3=ADfico=20e=20com=20o=20registo=20da=20pessoa.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dbs/social_interno.mv.db | Bin 53248 -> 53248 bytes server/services/public/register/options.js | 1 + server/services/public/register/post.js | 61 +++++++++++++++++++++ server/setup/001-group.js | 5 ++ server/setup/002-cidade.js | 32 +++++++++++ server/setup/_schema-form-3-pessoa.js | 30 ++++++++++ website/src/pages/Register/index.js | 36 ++++++++++-- 7 files changed, 161 insertions(+), 4 deletions(-) create mode 100644 server/services/public/register/options.js create mode 100644 server/services/public/register/post.js create mode 100644 server/setup/001-group.js create mode 100644 server/setup/002-cidade.js diff --git a/dbs/social_interno.mv.db b/dbs/social_interno.mv.db index 91b85c3acf0fb0eda82572d7730153dcd957710e..708268ac30241bf3f89285684e450288679a7216 100644 GIT binary patch delta 4703 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 delta 3579 zcmcIn4RBP|6@KsT-c7Qwkc4Pi2+8ioM5WvC{(n}AGz=|tXZZ^9TvM#Af$xz48 z#Qf{HSg81<|beXV^!` zGQ-uDH!owilgtWNTi>$MisC+&Y;FEwDXnm7WQ#w*tlRJaEQCQgmz-|duz)_kYh(os zF!KsQEBmD12MbBf7I{9y6y1JsS0KQwy?@>M4GmW77Op5joyEOBBk%O^U~j3lWZQBU z41At!>WzYdGh}CPB)sjh-_8#)ydX-lqS9T8=st7cTo|&R@7-8nuRpzS59!)D3h&=H zQXC?SGZC^f6ZcgP`bkHoys&w2LkXbk$)U^_3aEGG;P^1<%q%Ya$Dmm17&Z>PYlo>E zI!1o6t9)VE(8~(|Qv#xV35W^Q;MlGad(lmmkCz?<{zz<#}402;=^l)JD0#CFFhZb_F!`~OwJD1lB>fhc;x%9#KL6L zflYuUW4{PP)t%fg~S5%vFN1v&TN(^-<{1e_U9=}j2^0L@=%9QHg;q)DTi@Fnu)uRNMLRo6M=_Tf`oyJj)$@1D`nf9h8Zbh)GamCFuCESY%Ckrf}_=g7+S z`(0^Wa%5z6L21R(vKuR+_I-V(wNUfBou3n=M7kgr6e6 zK2qBF--(Z#nfMgJOMK!EXD^!rmAKKG##ia@~s#_6}1rQ~}@&lPGsq~u(ylW&YvR0Zr?Q*(vx3gimI71+8k@^!FuTYEBn zZ@Q_LkK-;A^_UM#a{;+yQMv8_Sf<}Ngcl<6LB8(Afwf!kF;rvOqq8bvTKCt zQ9tG&TrYx{=TP0Apdl(fdFg7NgJUPp9*@G7Z#~YGkxR!PtmNm}{%1_)z z_M9jt&zwjrz|?_>fNA(-Mey;weTnqmz9crunt4cC|ks@kdRnxIoH8}5~QBsjyYsUVpoX@n4Z0JanJSsLhuWAa|tEN=1Gv+c_@|Xq1^q$E;c~BWi?AF&UuaV*<4>p)n zyx2%aULIKGz2(7r7UoQLpwcO2HOEQi2CbUe$a8lEZKkgmrg$bD;egFgAU(czaQkBw=*8MePZKr@6<+Gwm^K!ZWDErEr?>09leFA$y;!W^|8jG z zx_AxzKX^@0y#6^GUiwUUB|kB|a$Q{~gXeE`yZQg{3cH|yAMJ5K$rafH3d(&%NrgwU KsAF2l`u_kKZSn2^ diff --git a/server/services/public/register/options.js b/server/services/public/register/options.js new file mode 100644 index 0000000..f731105 --- /dev/null +++ b/server/services/public/register/options.js @@ -0,0 +1 @@ +_out.json(_val.map().set("result", true)) \ No newline at end of file diff --git a/server/services/public/register/post.js b/server/services/public/register/post.js new file mode 100644 index 0000000..3b588e1 --- /dev/null +++ b/server/services/public/register/post.js @@ -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) + ) +} diff --git a/server/setup/001-group.js b/server/setup/001-group.js new file mode 100644 index 0000000..0f9a49f --- /dev/null +++ b/server/setup/001-group.js @@ -0,0 +1,5 @@ +_group.createIfNotExists( + _val.map() + .set("name", "Utilizador Comum") + .set("code", "utilizador") +) diff --git a/server/setup/002-cidade.js b/server/setup/002-cidade.js new file mode 100644 index 0000000..bd00a25 --- /dev/null +++ b/server/setup/002-cidade.js @@ -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") +); diff --git a/server/setup/_schema-form-3-pessoa.js b/server/setup/_schema-form-3-pessoa.js index 6740430..716464a 100644 --- a/server/setup/_schema-form-3-pessoa.js +++ b/server/setup/_schema-form-3-pessoa.js @@ -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) +) diff --git a/website/src/pages/Register/index.js b/website/src/pages/Register/index.js index c35ee10..791b4c7 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'; @@ -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 ()=> { + + + { > - {