Browse Source

Sessão 11

master
eduveks 5 years ago
parent
commit
fca0991b9a
14 changed files with 152 additions and 11 deletions
  1. +11
    -0
      config/_development.json
  2. BIN
      dbs/social_ma.mv.db
  3. +15
    -0
      server/services/_openapi.json
  4. +10
    -0
      server/services/_schema/cities.js
  5. +11
    -0
      server/services/_schema/result.out.200.json
  6. +15
    -0
      server/services/_schema/result.out.409.json
  7. +32
    -0
      server/services/register.post.in.json
  8. +4
    -2
      server/services/register.post.js
  9. +3
    -0
      server/services/register.post.out.200.json
  10. +3
    -0
      server/services/register.post.out.409.json
  11. +33
    -9
      website/src/App.js
  12. +7
    -0
      website/src/Core.js
  13. +4
    -0
      website/src/pages/Login/index.js
  14. +4
    -0
      website/src/pages/Main/index.js

+ 11
- 0
config/_development.json View File

@ -51,5 +51,16 @@
"access_expires": 60,
"refresh_expires": 1440,
"algorithm": "HS512"
},
"openapi": {
"host": "http://eduardo-velasques.dev.netuno.org:10090",
"basePath": "/services",
"schemes": [ "http" ],
"servers": [
{
"url": "http://eduardo-velasques.dev.netuno.org:10090/services",
"description": "Desenvolvimento Remoto"
}
]
}
}

BIN
dbs/social_ma.mv.db View File


+ 15
- 0
server/services/_openapi.json View File

@ -0,0 +1,15 @@
{
"info": {
"title": "Plataforma Social",
"description": "REST API da Plataforma Social.",
"version": "1.0"
},
"components": {
"securitySchemes": {
"BearerAuth": {
"type": "http",
"scheme": "bearer"
}
}
}
}

+ 10
- 0
server/services/_schema/cities.js View File

@ -0,0 +1,10 @@
const dbCidades = _db.query("SELECT uid FROM cidade")
const citiesUids = _val.list()
for (let dbCidade of dbCidades) {
citiesUids.add(dbCidade.getString("uid"))
}
_dataSchema.set("enum", citiesUids)

+ 11
- 0
server/services/_schema/result.out.200.json View File

@ -0,0 +1,11 @@
{
"type": "object",
"properties": {
"result": {
"type": "boolean"
}
},
"required": [
"result"
]
}

+ 15
- 0
server/services/_schema/result.out.409.json View File

@ -0,0 +1,15 @@
{
"type": "object",
"properties": {
"result": {
"type": "boolean"
},
"error": {
"type": "string-not-empty"
}
},
"required": [
"result",
"error"
]
}

+ 32
- 0
server/services/register.post.in.json View File

@ -0,0 +1,32 @@
{
"summary": "Registro",
"description": "Registro da conta do usuário.",
"type": "object",
"security": [
{ "BearerAuth": [] }
],
"properties": {
"name": {
"type": "string-not-empty"
},
"surname": {
"type": "string-not-empty"
},
"username": {
"type": "string-not-empty"
},
"password": {
"type": "string-not-empty"
},
"email": {
"type": "string-not-empty"
},
"city_uid": {
"type": "uid",
"_schema": "cities"
}
},
"required": [
"name", "surname", "username", "password", "email", "city_uid"
]
}

+ 4
- 2
server/services/register.post.js View File

@ -15,16 +15,18 @@ if (dbCidade == null) {
_header.status(409)
_out.json(
_val.map()
.set("error", true)
.set("message", "city-not-found")
.set("result", false)
.set("error", "city-not-found")
)
} else if (emailExists != null) {
_header.status(409)
_out.json(
_val.map()
.set("result", false)
.set("error", "email-exists")
)
} else if (usernameExists != null) {
_header.status(409)
_out.json(
_val.map()
.set("result", false)


+ 3
- 0
server/services/register.post.out.200.json View File

@ -0,0 +1,3 @@
{
"_schema": "result.out.200"
}

+ 3
- 0
server/services/register.post.out.409.json View File

@ -0,0 +1,3 @@
{
"_schema": "result.out.409"
}

+ 33
- 9
website/src/App.js View File

@ -1,5 +1,6 @@
import React, { useEffect, useState} from 'react';
import _auth from '@netuno/auth-client';
import _service from '@netuno/service-client';
import { Layout, Menu } from 'antd';
@ -14,6 +15,8 @@ import Login from './pages/Login';
import Register from './pages/Register';
import Main from './pages/Main';
import Core from './Core';
import logo from './logo.svg';
import './App.less';
@ -22,6 +25,7 @@ const { Header, Footer, Content } = Layout;
const { SubMenu } = Menu;
function App() {
const [ logged, setLogged ] = useState(false);
const [ data, setData ] = useState([]);
useEffect(() => {
_service({
@ -37,20 +41,40 @@ function App() {
});
}, []);
Core.events.login = () => {
setLogged(true);
}
Core.events.logout = () => {
setLogged(false);
}
let menu = null;
if (_auth.isLogged()) {
menu = <>
<Menu.Item>
<Link to="/main">Principal</Link>
</Menu.Item>
</>;
} else {
menu = <>
<Menu.Item>
<Link to="/">Home</Link>
</Menu.Item>
<Menu.Item>
<Link to="/login">Login</Link>
</Menu.Item>
<Menu.Item>
<Link to="/register">Registrar</Link>
</Menu.Item>
</>;
}
return (
<Router>
<Layout>
<Header>
<Menu mode="horizontal">
<Menu.Item>
<Link to="/">Home</Link>
</Menu.Item>
<Menu.Item>
<Link to="/login">Login</Link>
</Menu.Item>
<Menu.Item>
<Link to="/register">Registrar</Link>
</Menu.Item>
{menu}
</Menu>
</Header>
<Content>


+ 7
- 0
website/src/Core.js View File

@ -0,0 +1,7 @@
export default class Core {
static events = {
login: ()=> {},
logout: ()=> {}
};
}

+ 4
- 0
website/src/pages/Login/index.js View File

@ -6,6 +6,8 @@ import _auth from '@netuno/auth-client';
import { Redirect } from "react-router-dom";
import Core from "../../Core";
import './index.less';
const layout = {
@ -31,6 +33,8 @@ export default ()=> {
} else {
localStorage.removeItem("login");
}
Core.events.login();
//window.location = '/main';
},
fail: ()=> {
setLoading(false);


+ 4
- 0
website/src/pages/Main/index.js View File

@ -4,6 +4,8 @@ import { Redirect } from "react-router-dom";
import _auth from '@netuno/auth-client';
import Core from "../../Core";
import { Button } from 'antd';
export default ()=> {
@ -14,6 +16,8 @@ export default ()=> {
const onLogout = ()=> {
_auth.logout();
setLoading(true);
Core.events.logout();
//window.location = '/login';
}
return (
<div>


Loading…
Cancel
Save