Giter Club home page Giter Club logo

payfast's Introduction

PayFast gateway de pagamentos OnLine

Trata-se de uma aplicação para funcionar como um gateway de pagamentos, ou seja, uma plataforma que pode ser utilizada por outros aplicativos para integrar meios de pagamento. Esse sistema faz parte dos exemplos de cenários situacionais que são usados como exercício para aprendizado do aluno no curso avançado sobre NodeJs que é conduzido pela Alura Cursos Online.

Getting Started Para começar a rodar a aplicação da PayFast em sua máquina inicialmente você precisará: - Copie o diretório payfast e cardfast para um diretório de sua preferência. - Instale a engine javascript do NodeJS em sua máquina acessando o link https://nodejs.org/en/download/ - Após instalado o NodeJS abra um terminal e digite node -v que ele deve retornar a versão instalada - Confirme se o NPM (Node Package Manager) já está instalado em sua máquina digitando "npm -version - Digite em seu terminal o comando "sudo npm install -g nodemon" - Instale o MySQL em sua máquina baixando através do link https://dev.mysql.com/downloads/mysql/ - Assim que rodar o MySQL rode o seguinte comando SQL: ============================================ > create database payfast;

			> use payfast;
			
			

			> CREATE TABLE pagamentos (
    			id int(11) NOT NULL AUTO_INCREMENT,
		       	forma_de_pagamento varchar(255) NOT NULL,
		       	valor decimal(10,2) NOT NULL,
		       	moeda varchar(3) NOT NULL,
		       	status varchar(255) NOT NULL,
		       	data DATE,
		       	descricao text,
		        PRIMARY KEY (id)
		       );

			> show tables;

			============================================

- Entre no arquivo connectionFactory e entre com o usuário e senha do seu banco de dados em mySQL.
- No console entre no diretório "payfast" e digite o comando "nodemon index.js"
senha do seu banco de dados em mySQL.
- Quando ambos os serviços estiverem de pé digite o seguinte comando no console:
	> curl http://localhost:3000/pagamentos/pagamento -X POST -v -H "Content-type:application/json" -d @files/pagamentos.json | json_pp
- Consulte o id do pagamento realizado no banco de dados para usá-lo na pesquisa.Para consultar o dado inserido digite:
	> curl -X GET http://localhost:3000/pagamentos/pagamento/<id> -v 

Prerequisites Você precisará instalar em modo padrão os seguintes softwares: NodeJS - https://nodejs.org/en/download/ MySQL - https://dev.mysql.com/downloads/

Running the tests

  • Os testes foram criados usando a biblioteca do supertest disponível no NPM.

  • Para rodar os testes de integração digite o seguinte comando no console: NODE_ENV=test node_modules/mocha/bin/mocha

  • Os testes criados que estão dentro do diretório test no arquivo produtos.js verificam as operações CRUD de produtos disponíveis

  • Os testes validam a funcionalidade de cadastro de produtos. Para isso foram escritos dois testes: um para testar o cadastro com dados inválidos e outro com dados válidos.

  • Está sendo testada a rota “/produtos”, porém passando o verbo “post”. E para enviar o corpo da requisição, ou seja, o json com os dados do produto, está sendo usada a função send() do objeto do supertest.

      =========================================================================================
      var express = require('../config/express')();
      var request = require('supertest')(express);
      describe('ProdutosController', function(){
    
      	it('#listagem json', function(done){
      		request.get('/produtos')
      		.set('Accept', 'Application/json')
      		.expect('Content-Type',/json/)
      		.expect(200,done);
      	});
    
      	it('Cadastro de novo produto com dados inválidos', function(done){
      		request.post('/produtos')
      		.send({titulo:"",descricao:"Novo livro"})
      		.expect(400,done);
      	});
    
      		it('Cadastro de novo produto com dados válidos', function(done){
      		request.post('/produtos')
      		.send({titulo:"Livro dos títulos",descricao:"Novo livro dos Títulos", preco:100})
      		.expect(302,done);
      	});
      });
      =========================================================================================
    

Built With "body-parser": "^1.18.2", "consign": "^0.1.6", "express": "^4.16.3", "express-validator": "^5.1.2", "memcached": "^2.2.2", "morgan": "^1.9.0", "mysql": "^2.15.0", "restify": "^7.1.1", "restify-clients": "^2.0.2", "soap": "^0.24.0", "winston": "^2.4.2"

Versioning Nós usamos o git para versionamento. Para as versões disponíveis, veja as tags no repositório.

Authors Thiago Moreira - https://github.com/ttrmoreira

payfast's People

Contributors

ttrmoreira avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.