Browse Source

first commit

master
yutsuo 6 years ago
parent
commit
5a88333ab9
  1. 1
      .babelrc
  2. 23
      .dockerignore
  3. 4
      .gitignore
  4. 7
      Dockerfile
  5. 46
      dist/app.js
  6. 93
      dist/bin/www.js
  7. 30
      dist/routes/index.js
  8. 62
      docker-compose-proxy.yml
  9. 14
      docker-compose.debug.yml
  10. 15
      docker-compose.yml
  11. 5
      nodemon.json
  12. 36
      package.json
  13. 78
      src/bin/backup.js
  14. 53
      src/bin/backup_axios.js
  15. 9
      src/bin/soap-envelope.xml
  16. 50
      src/bin/www.js

1
.babelrc

@ -0,0 +1 @@
{ "presets": ["@babel/preset-env"]}

23
.dockerignore

@ -0,0 +1,23 @@
**/.classpath
**/.dockerignore
**/.env
**/.git
**/.gitignore
**/.project
**/.settings
**/.toolstarget
**/.vs
**/.vscode
**/*.*proj.user
**/*.dbmdl
**/*.jfm
**/azds.yaml
**/charts
**/docker-compose*
**/Dockerfile*
**/node_modules
**/npm-debug.log
**/obj
**/secrets.dev.yaml
**/values.dev.yaml
README.md

4
.gitignore vendored

@ -0,0 +1,4 @@
data/cache
.idea
node_modules
mongo_data

7
Dockerfile

@ -0,0 +1,7 @@
FROM node:current-alpine AS builder
WORKDIR /usr/src/app
COPY /package.json /app/
COPY ["package.json", "package-lock.json*", "npm-shrinkwrap.json*", "./"]
RUN apk add --no-cache git
RUN npm install
COPY . .

46
dist/app.js vendored

@ -0,0 +1,46 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _express = _interopRequireDefault(require("express"));
var _path = _interopRequireDefault(require("path"));
var _cookieParser = _interopRequireDefault(require("cookie-parser"));
var _morgan = _interopRequireDefault(require("morgan"));
var _index = _interopRequireDefault(require("./routes/index"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
// var express = require('express');
// var path = require('path');
// var cookieParser = require('cookie-parser');
// var logger = require('morgan');
// var indexRouter = require('./routes/index');
// var usersRouter = require('./routes/users');
// var app = express();
// app.use(logger('dev'));
// app.use(express.json());
// app.use(express.urlencoded({ extended: false }));
// app.use(cookieParser());
// app.use(express.static(path.join(__dirname, 'public')));
// app.use('/', indexRouter);
// app.use('/users', usersRouter);
// module.exports = app;
// app.js
var app = (0, _express["default"])();
app.use((0, _morgan["default"])('dev'));
app.use(_express["default"].json());
app.use(_express["default"].urlencoded({
extended: false
}));
app.use((0, _cookieParser["default"])());
app.use(_express["default"]["static"](_path["default"].join(__dirname, '../public')));
app.use('/', _index["default"]);
var _default = app;
exports["default"] = _default;

93
dist/bin/www.js vendored

@ -0,0 +1,93 @@
"use strict";
var _app = _interopRequireDefault(require("../app"));
var _debug = _interopRequireDefault(require("debug"));
var _http = _interopRequireDefault(require("http"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
// bin/www.js
/**
* Module dependencies.
*/
var debug = (0, _debug["default"])('your-project-name:server');
/**
* Get port from environment and store in Express.
*/
var port = normalizePort(process.env.PORT || '3000');
_app["default"].set('port', port);
/**
* Create HTTP server.
*/
var server = _http["default"].createServer(_app["default"]);
/**
* Listen on provided port, on all network interfaces.
*/
server.listen(port);
server.on('error', onError);
server.on('listening', onListening);
/**
* Normalize a port into a number, string, or false.
*/
function normalizePort(val) {
var port = parseInt(val, 10);
if (isNaN(port)) {
// named pipe
return val;
}
if (port >= 0) {
// port number
return port;
}
return false;
}
/**
* Event listener for HTTP server "error" event.
*/
function onError(error) {
if (error.syscall !== 'listen') {
throw error;
}
var bind = typeof port === 'string' ? 'Pipe ' + port : 'Port ' + port; // handle specific listen errors with friendly messages
switch (error.code) {
case 'EACCES':
console.error(bind + ' requires elevated privileges');
process.exit(1);
break;
case 'EADDRINUSE':
console.error(bind + ' is already in use');
process.exit(1);
break;
default:
throw error;
}
}
/**
* Event listener for HTTP server "listening" event.
*/
function onListening() {
var addr = server.address();
var bind = typeof addr === 'string' ? 'pipe ' + addr : 'port ' + addr.port;
debug('Listening on ' + bind);
}

30
dist/routes/index.js vendored

@ -0,0 +1,30 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _express = _interopRequireDefault(require("express"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
// var express = require('express');
// var router = express.Router();
// /* GET home page. */
// router.get('/', function(req, res, next) {
// res.render('index', { title: 'Express' });
// });
// module.exports = router;
// routes/index.js
var router = _express["default"].Router();
/* GET home page. */
router.get('/', function (req, res, next) {
res.render('index', {
title: 'Express'
});
});
var _default = router;
exports["default"] = _default;

62
docker-compose-proxy.yml

@ -0,0 +1,62 @@
version: "3.7"
services:
mongodb:
image: mongo:latest
container_name: mongodb
volumes:
- ./mongo_data:/data/db
environment:
- MONGO_INITDB_DATABASE=forms
- MONGO_INITDB_ROOT_USERNAME=mongodbUser
- MONGO_INITDB_ROOT_PASSWORD=mongodbPass
ports:
- "27017:27017"
mongo-express:
container_name: mongo-express
depends_on:
- mongodb
image: mongo-express:latest
environment:
- ME_CONFIG_MONGODB_SERVER=mongodb
- ME_CONFIG_MONGODB_PORT=27017
- ME_CONFIG_MONGODB_ADMINUSERNAME=mongodbUser
- ME_CONFIG_MONGODB_ADMINPASSWORD=mongodbPass
- ME_CONFIG_BASICAUTH_USERNAME=expressUser
- ME_CONFIG_BASICAUTH_PASSWORD=expressPass
- ME_CONFIG_MONGODB_ENABLE_ADMIN=true
- ME_CONFIG_OPTIONS_EDITORTHEME=default
ports:
- "8081:8081"
node:
depends_on:
- mongodb
image: avaliacao-imovel-rural/air-backend
container_name: air-backend
build:
context: .
args:
- HTTP_PROXY=http://192.168.128.1:3128
- HTTPS_PROXY=http://192.168.128.1:3128
- http_proxy=http://192.168.128.1:3128
- https_proxy=http://192.168.128.1:3128
ports:
- "3001:3001"
env_file:
- .env
environment:
- NODEJS_HOST=0.0.0.0
- NODEJS_PORT=3001
- MONGO_DB_HOST=mongodb
- MONGO_DB_PORT=27017
- MONGO_DB_URL=mongodb://mongodb:27017/analise-agro?authSource=admin
- MONGO_DB_USER=mongodbUser
- MONGO_DB_PWD=mongodbPass
networks:
default:
ipam:
driver: default
config:
- subnet: 172.17.1.0/24

14
docker-compose.debug.yml

@ -0,0 +1,14 @@
version: '2.1'
services:
es6-nodejs:
image: es6-nodejs
container_name: es6-nodejs
build: .
environment:
NODE_ENV: development
ports:
- 3001:3001
- 9229:9229
## set your startup file here
command: node --inspect=0.0.0.0:9229 index.js

15
docker-compose.yml

@ -0,0 +1,15 @@
version: '3.7'
services:
es6-nodejs:
image: nodejs-soap-test
container_name: nodejs-soap-test
build: .
volumes:
- ./src:/usr/src/app/src
- ./public:/usr/src/app/public
ports:
- 6001:6001
environment:
- NODEJS_PORT=6001
command: ["npm","run","watch"]

5
nodemon.json

@ -0,0 +1,5 @@
{
"exec": "npm run dev",
"watch": ["src/*", "public/*"],
"ext": "js, html, css, json, xml"
}

36
package.json

@ -0,0 +1,36 @@
{
"name": "es6-nodejs",
"version": "0.0.0",
"private": true,
"scripts": {
"start": "npm run prod",
"server": "babel-node ./src/bin/www",
"server:prod": "node ./dist/bin/www",
"dev": "NODE_ENV=development npm-run-all server",
"clean": "rimraf dist",
"build": "babel ./src --out-dir dist",
"prod": "NODE_ENV=production npm-run-all clean build server:prod",
"watch": "nodemon"
},
"dependencies": {
"cookie-parser": "^1.4.5",
"debug": "^4.1.1",
"express": "^4.17.1",
"morgan": "^1.10.0",
"npm-run-all": "^4.1.5",
"rimraf": "^3.0.2",
"axios": "0.19.2",
"soap": "^0.31.0",
"easy-soap-request": "^3.3.1",
"fast-xml-parser": "^3.17.4",
"xml2js": "0.4.23",
"colors": "1.4.0"
},
"devDependencies": {
"@babel/cli": "^7.10.1",
"@babel/core": "^7.10.2",
"@babel/node": "^7.10.1",
"@babel/preset-env": "^7.10.2",
"nodemon": "^2.0.4"
}
}

78
src/bin/backup.js

@ -0,0 +1,78 @@
import express from "express";
import soapRequest from "easy-soap-request";
import fs from "fs";
import colors from "colors";
import xmlParser from "fast-xml-parser";
import xml2js from "xml2js";
import util from "util";
import soap from "soap";
const parser = new xml2js.Parser({ explicitArray: false });
// colors
colors.enable();
// express app
const app = express();
const port = process.env.NODEJS_PORT || 3001;
app.listen(port, () => {
console.log(`Express app running on Port: ${port}`.green);
});
// data
const url = "https://www3.bcb.gov.br/wssgs/services/FachadaWSSGS?method=getValor";
const headers = {
"user-agent": "AIR-nodejs",
"Content-Type": "text/xml;charset=UTF-8",
soapAction: "https://www3.bcb.gov.br/wssgs/services/FachadaWSSGS/getValor",
};
const xml = `\
<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<getValor xmlns="https://www3.bcb.gov.br/wssgs/services/FachadaWSSGS">
<codigoSerie>4392</codigoSerie>
<data>18/06/2020</data>
</getValor>
</soapenv:Body>
</soapenv:Envelope>
`;
// express routes
const routes = express.Router();
app.use("/", routes);
// routes controller
routes.route("").get((req, res) => {
parser.parseString(xml, function (err, result) {
console.log("XML".red);
console.log(util.inspect(result, false, null));
res.send(result);
console.log("Drilling Down".red);
console.log(util.inspect(result["soapenv:Envelope"]["soapenv:Body"].getValor.data, false, null));
});
});
routes.route("/soap/xmlParser").get(async (req, res) => {
// parse envelope
const parsedEnvelope = xmlParser.parse(xml);
const newDate = "01/06/2020";
console.log("Envelope".green, parsedEnvelope["soapenv:Envelope"]["soapenv:Body"].getValor.data);
const { response } = await soapRequest({
url: url,
headers: sampleHeaders,
xml: xml,
timeout: 1000,
}); // Optional timeout parameter(milliseconds)
const { headers, body, statusCode } = response;
console.log(headers);
console.log(body);
console.log(statusCode);
const parsedXML = xmlParser.parse(body);
const responseValue = parsedXML["soapenv:Envelope"]["soapenv:Body"].multiRef;
const responseObject = parsedEnvelope["soapenv:Envelope"]["soapenv:Body"].getValor.data;
console.log(`CDI (${responseObject}): ${responseValue}`.green);
res.send("done");
});

53
src/bin/backup_axios.js

@ -0,0 +1,53 @@
import express from "express";
import colors from "colors";
import axios from "axios";
import util from "util"
// colors
colors.enable();
// express app
const app = express();
const port = process.env.NODEJS_PORT || 3001;
app.listen(port, () => {
console.log(`Express app running on Port: ${port}`.green);
});
// data
const url = "https://www3.bcb.gov.br/wssgs/services/FachadaWSSGS?method=getValor";
const headers = {
headers: {
"user-agent": "AIR-nodejs",
"Content-Type": "text/xml;charset=UTF-8",
soapAction: "https://www3.bcb.gov.br/wssgs/services/FachadaWSSGS/getValor",
},
};
const xml = `\
<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<getValor xmlns="https://www3.bcb.gov.br/wssgs/services/FachadaWSSGS">
<codigoSerie>4392</codigoSerie>
<data>18/06/2020</data>
</getValor>
</soapenv:Body>
</soapenv:Envelope>
`;
// express routes
const routes = express.Router();
app.use("/", routes);
// routes controller
routes.route("").get((request, response) => {
axios
.post(url, xml, headers)
.then((response) => {
console.log(`${util.inspect(response.data, false, null)}`.yellow);
})
.catch((error) => {
console.log(error);
});
response.send("done");
});

9
src/bin/soap-envelope.xml

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<getValor xmlns="https://www3.bcb.gov.br/wssgs/services/FachadaWSSGS">
<codigoSerie>4392</codigoSerie>
<data>18/06/2020</data>
</getValor>
</soapenv:Body>
</soapenv:Envelope>

50
src/bin/www.js

@ -0,0 +1,50 @@
import express from "express";
import colors from "colors";
import axios from "axios";
import util from "util";
// import soap from "soap";
// colors
colors.enable();
// express app
const app = express();
const port = process.env.NODEJS_PORT || 3001;
app.listen(port, () => {
console.log(`Express app running on Port: ${port}`.green);
});
//soap example
const soap = require("soap");
const url = "https://www3.bcb.gov.br/wssgs/services/FachadaWSSGS?wsdl";
const args = { codigoSerie: "4392", data: "18/06/2020" };
soap
.createClientAsync(url)
.then((client) => {
return new Promise((resolve, reject) => {
client.getValor(args, (error, result) => {
error ? reject() : resolve(result);
});
});
})
.then((result) => {
console.log(result);
});
// express routes
const routes = express.Router();
app.use("/", routes);
// routes controller
routes.route("").get((request, response) => {
axios
.post(url, xml, headers)
.then((response) => {
console.log(`${util.inspect(response.data, false, null)}`.yellow);
})
.catch((error) => {
console.log(error);
});
response.send("done");
});
Loading…
Cancel
Save