Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • A Adocoes
  • Project information
    • Project information
    • Activity
    • Labels
    • Planning hierarchy
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • AGES-Adocoes
  • Adocoes
  • Wiki
  • framework

framework · Changes

Page history
Update framework authored Nov 09, 2017 by Mateus Haas's avatar Mateus Haas
Hide whitespace changes
Inline Side-by-side
framework.md
View page @ 7dcf0018
# Tutorial de como construir o framework do projeto # Framework IATE
## 1 - Translator.js
##### Similar ao `Controller` do padrão `MVC`. Responsável por receber os dados de `request`, decidir o serviço de comunicação com o `Interactor` e compilar a resposta para a API.
> Na prática, o `Translator` serve para manter o `server.js` mais limpo e claro.
## Adapter.js
--
```javascript ```javascript
export default class Adapter { export default class Translator {
constructor() { constructor() {
self.mongoose = require('mongoose') self.Interactor = require('./Interactor').default
self.MenorModel = mongoose.model('Menor') }
}
save(data) { post(request, response) {
const menor = new self.MenorModel(data) const interactor = new self.Interactor()
let data = request.body || {}
return menor.save().then((data) => { interactor.createUser(data).then(data => console.log(data))
return data }
})
} get()
}
```
## 2 - Interactor.js
##### Manipula os dados relevantes do Request Model e decide como os dados devem ser enviados para regra de negócio na `Entity`.
```
export default class Interactor {
constructor() {
self.Entity = require('./Entity').default
}
createUser(data) {
const entity = new self.Entity
return entity.validateMenorData(data)
.then(data => {
entity.createMenor(data)
})
.catch(error => {
console.log(error)
})
}
} }
``` ```
## Entity.js
##### Classe que contém os dados e as regras de negócio. ## 3 - Entity.js
##### Camada que contém validação de dados e regras de negócio. Responsável por comunicar com o `Adapter`.
``` ```
import Joi from 'joi' import Joi from 'joi'
...@@ -53,43 +80,23 @@ export default class Entity { ...@@ -53,43 +80,23 @@ export default class Entity {
} }
} }
``` ```
## Interactor.js
##### Contém as regras de negócio específicas. Manipula os dados relevantes do Request Model e interage com as Entities. ## 4 - Adapter.js
``` ##### Última camada da aplicação e faz a interface com o banco de dados.
export default class Interactor {
constructor() {
self.Entity = require('./Entity').default
}
createUser(data) {
const entity = new self.Entity
return entity.validateMenorData(data)
.then(data => {
entity.createMenor(data)
})
.catch(error => {
console.log(error)
})
}
}
```
## Translator.js
--
```javascript ```javascript
export default class Translator { export default class Adapter {
constructor() { constructor() {
self.Interactor = require('./Interactor').default self.mongoose = require('mongoose')
} self.MenorModel = mongoose.model('Menor')
}
post(request, response) {
const interactor = new self.Interactor()
let data = request.body || {}
interactor.createUser(data).then(data => console.log(data)) save(data) {
} const menor = new self.MenorModel(data)
get() return menor.save().then((data) => {
return data
})
}
} }
``` ```
\ No newline at end of file
Clone repository
  • Mongo DB
  • Node.js
  • comandos basicos de git
  • como proteger uma rota
  • configuracao do robomongo
  • convenio tjrs mprs pucrs fotos
  • framework
  • getting started
  • grupos
  • Home
  • integracao com slack
  • layouts
  • minha primeira api
  • mockups aplicativo
  • mockups web adm
View All Pages