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

Last edited by Mateus Guzinski Haas Dec 01, 2017
Page history

framework

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.

export default class Translator {
    constructor() {
        self.Interactor = require('./Interactor').default
    }

    post(request, response) {
        const interactor = new self.Interactor()
        let data = request.body || {}

        interactor.createUser(data)
                .then(data => response.send(200, data))
                .catch(data => response.send(500, 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)
    	        })
    }
}

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'

export default class Entity {
	constructor {
		self.Adapter = require('./Adapter').default
	}

	validateMenorData(data) {
		return new Promise((resolve, reject) => {
			const schema = Joi.object().keys({
    			username: Joi.string().optional(),
    			email: Joi.string().email()
			})
			
			const result = Joi.validate(data, schema);

			if (result) {
				resolve(data)
			} else {
				reject('')
			}
		})
	}

	createMenor(data) {
		const adapter = new self.Adapter
		
		return adapter.save(data)
	}
}

4 - Adapter.js

Última camada da aplicação e faz a interface com o banco de dados.
export default class Adapter {
	constructor() {
		self.mongoose = require('mongoose')
		self.MenorModel = mongoose.model('Menor')
	}

	save(data) {
			const menor = new self.MenorModel(data)

			return menor.save().then((data) => {
				return data
			})
		}
}
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