move to 3ks
This commit is contained in:
commit
c0dac6b508
67
.gitignore
vendored
Normal file
67
.gitignore
vendored
Normal file
@ -0,0 +1,67 @@
|
||||
#Visual Studio Code Settings
|
||||
.vscode/
|
||||
|
||||
#Ignore Real Config Files a distributed one is included for structure.s
|
||||
config.js
|
||||
|
||||
# Logs
|
||||
logs
|
||||
*.log
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
|
||||
# Runtime data
|
||||
pids
|
||||
*.pid
|
||||
*.seed
|
||||
*.pid.lock
|
||||
|
||||
# Directory for instrumented libs generated by jscoverage/JSCover
|
||||
lib-cov
|
||||
|
||||
# Coverage directory used by tools like istanbul
|
||||
coverage
|
||||
|
||||
# nyc test coverage
|
||||
.nyc_output
|
||||
|
||||
# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
|
||||
.grunt
|
||||
|
||||
# Bower dependency directory (https://bower.io/)
|
||||
bower_components
|
||||
|
||||
# node-waf configuration
|
||||
.lock-wscript
|
||||
|
||||
# Compiled binary addons (https://nodejs.org/api/addons.html)
|
||||
build/Release
|
||||
|
||||
# Dependency directories
|
||||
node_modules/
|
||||
jspm_packages/
|
||||
|
||||
# TypeScript v1 declaration files
|
||||
typings/
|
||||
|
||||
# Optional npm cache directory
|
||||
.npm
|
||||
|
||||
# Optional eslint cache
|
||||
.eslintcache
|
||||
|
||||
# Optional REPL history
|
||||
.node_repl_history
|
||||
|
||||
# Output of 'npm pack'
|
||||
*.tgz
|
||||
|
||||
# Yarn Integrity file
|
||||
.yarn-integrity
|
||||
|
||||
# dotenv environment variables file
|
||||
.env
|
||||
|
||||
# next.js build output
|
||||
.next
|
52
README.md
Normal file
52
README.md
Normal file
@ -0,0 +1,52 @@
|
||||
#tsAPI3 -- Twitter API
|
||||
This project uses a local database to run stats on specified hash-tags.
|
||||
|
||||
|
||||
#Notes
|
||||
https://medium.com/@rdsubhas/docker-for-development-common-problems-and-solutions-95b25cae41eb
|
||||
#SCP
|
||||
http://www.hypexr.org/linux_scp_help.php
|
||||
https://www.howtoforge.com/tutorial/ssh-and-scp-with-public-key-authentication/
|
||||
|
||||
|
||||
|
||||
|
||||
#Package & Ship app to Pi
|
||||
|
||||
#Move to parent (Code) Directory
|
||||
cd /users/timpreble/Documents/code
|
||||
|
||||
#Zip Main Folder + Files only.
|
||||
https://www.gnu.org/software/tar/manual/tar.html#SEC35
|
||||
|
||||
tar
|
||||
-c : create
|
||||
-z : read or write archives through gzip, allowing tar to directly operate on several kinds of compressed archives transparently
|
||||
-f : new file name
|
||||
-v : verbose
|
||||
|
||||
tar -czf folder_name.tar.gz folder_name/
|
||||
tar -czf tsAPI3.tar.gz tsAPI3/
|
||||
|
||||
|
||||
|
||||
#Ship Zip File to TSAPI3
|
||||
scp scp tsAPI3.tar.gz timp@RPi3(IPADDRESS):/docker-data
|
||||
|
||||
#ssh to RPi3
|
||||
ssh RPi3
|
||||
|
||||
#move into correct directory & uncompress archive
|
||||
cd /docker-data
|
||||
tar -zxvf tsAPI3.tar.gz
|
||||
|
||||
#Remove original archive
|
||||
rm tar tsAPI3.tar.gz
|
||||
|
||||
#Move into api dir & build docker image
|
||||
cd /docker-data/tsAPI3
|
||||
docker build -t timpreble/tsapi:3.0 .
|
||||
|
||||
#Run the container
|
||||
docker run -d --name tsapi3 --restart=always -p 3001:3001 timpreble/tsapi:3.1
|
||||
|
19
config.js.dist
Executable file
19
config.js.dist
Executable file
@ -0,0 +1,19 @@
|
||||
'use strict'
|
||||
|
||||
var mysql = require('mysql');
|
||||
|
||||
module.exports = {
|
||||
name: 'TS-api3',
|
||||
hostname : 'http://localhost',
|
||||
version: '3.0.1',
|
||||
env: process.env.NODE_ENV || 'development',
|
||||
port: process.env.PORT || 3000,
|
||||
db: {
|
||||
get : mysql.createConnection({
|
||||
host : 'ip or host name here',
|
||||
user : 'yOuR_UsEr',
|
||||
password : 'S0mePa$$w0rd',
|
||||
database : 'YourDBs'
|
||||
})
|
||||
}
|
||||
}
|
14
dockerfile
Normal file
14
dockerfile
Normal file
@ -0,0 +1,14 @@
|
||||
FROM arm32v7/node:alpine
|
||||
|
||||
#Create App Directory
|
||||
WORKDIR /usr/src/api
|
||||
|
||||
#Install Dependencies
|
||||
COPY package.json .
|
||||
RUN npm install
|
||||
|
||||
#Bundle ap source
|
||||
COPY . .
|
||||
|
||||
EXPOSE 3001
|
||||
CMD ["npm", "start"]
|
76
main.js.backup
Normal file
76
main.js.backup
Normal file
@ -0,0 +1,76 @@
|
||||
/**
|
||||
* Module Dependencies
|
||||
*/
|
||||
const config = require('./config'),
|
||||
restify = require('restify'),
|
||||
mysql = require('mysql')
|
||||
|
||||
|
||||
/**
|
||||
* Initialize Server
|
||||
*/
|
||||
const server = restify.createServer({
|
||||
name : config.name,
|
||||
version : config.version,
|
||||
url : config.hostname
|
||||
});
|
||||
|
||||
var connection = config.db.get;
|
||||
server.use(restify.plugins.acceptParser(server.acceptable));
|
||||
server.use(restify.plugins.queryParser());
|
||||
server.use(restify.plugins.bodyParser());
|
||||
|
||||
/*server.get('/echo/:name', function (req, res, next) {
|
||||
res.send(req.params);
|
||||
return next();
|
||||
});*/
|
||||
|
||||
//rest api to get all results
|
||||
server.get('/employees', function (req, res) {
|
||||
//connection.query('select * from tracking limit 10', function (error, results, fields) {
|
||||
connection.query('CALL CP_RPT_TodaysCounts();', function (error, results, fields) {
|
||||
if (error) throw error;
|
||||
res.end(JSON.stringify(results));
|
||||
});
|
||||
});
|
||||
|
||||
//rest api to get a single employee data
|
||||
server.get('/employees/:id', function (req, res) {
|
||||
connection.query('select * from employee where id=?', [req.params.id], function (error, results, fields) {
|
||||
if (error) throw error;
|
||||
res.end(JSON.stringify(results));
|
||||
});
|
||||
});
|
||||
|
||||
//rest api to create a new record into mysql database
|
||||
server.post('/employees', function (req, res) {
|
||||
var postData = req.body;
|
||||
connection.query('INSERT INTO employee SET ?', postData, function (error, results, fields) {
|
||||
if (error) throw error;
|
||||
res.end(JSON.stringify(results));
|
||||
});
|
||||
});
|
||||
|
||||
//rest api to update record into mysql database
|
||||
server.put('/employees', function (req, res) {
|
||||
connection.query('UPDATE `employee` SET `employee_name`=?,`employee_salary`=?,`employee_age`=? where `id`=?', [req.body.employee_name,req.body.employee_salary, req.body.employee_age, req.body.id], function (error, results, fields) {
|
||||
if (error) throw error;
|
||||
res.end(JSON.stringify(results));
|
||||
});
|
||||
});
|
||||
|
||||
//rest api to delete record from mysql database
|
||||
/*server.delete('/employees/:id', function (req, res) {
|
||||
connection.query('DELETE FROM `employee` WHERE `id`=?', [req.params.id], function (error, results, fields) {
|
||||
if (error) throw error;
|
||||
res.end('Record has been deleted!');
|
||||
});
|
||||
});*/
|
||||
|
||||
server.get('/', function(req, res){
|
||||
console.log('Welcome Nodejs restify');
|
||||
});
|
||||
|
||||
server.listen(3001, function () {
|
||||
console.log('%s listening at %s', server.name, server.url);
|
||||
});
|
16
package.json
Executable file
16
package.json
Executable file
@ -0,0 +1,16 @@
|
||||
{
|
||||
"name": "nodejs-restapi-example",
|
||||
"version": "1.0.0",
|
||||
"description": "",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
},
|
||||
"keywords": [],
|
||||
"author": "",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"mysql": "^2.14.1",
|
||||
"restify": "^5.2.0"
|
||||
}
|
||||
}
|
4
run.txt
Normal file
4
run.txt
Normal file
@ -0,0 +1,4 @@
|
||||
sudo docker build -t timpreble/tsapi3:1.0.0 .
|
||||
|
||||
|
||||
sudo docker run -d -p 3001:3001 --name tsapi3.1 --restart=always timpreble/tsapi3:1.0.0
|
66
server.js
Executable file
66
server.js
Executable file
@ -0,0 +1,66 @@
|
||||
/**
|
||||
* Module Dependencies
|
||||
*/
|
||||
const config = require('./config'),
|
||||
restify = require('restify'),
|
||||
mysql = require('mysql')
|
||||
|
||||
|
||||
/**
|
||||
* Initialize Server
|
||||
*/
|
||||
const server = restify.createServer({
|
||||
name : config.name,
|
||||
version : config.version,
|
||||
url : config.hostname
|
||||
});
|
||||
|
||||
var connection = config.db.get;
|
||||
server.use(restify.plugins.acceptParser(server.acceptable));
|
||||
server.use(restify.plugins.queryParser());
|
||||
server.use(restify.plugins.bodyParser());
|
||||
|
||||
/*server.get('/echo/:name', function (req, res, next) {
|
||||
res.send(req.params);
|
||||
return next();
|
||||
});*/
|
||||
|
||||
//rest api to get all results
|
||||
server.get('/api/today', function (req, res) {
|
||||
//connection.query('select * from tracking limit 10', function (error, results, fields) {
|
||||
connection.query('CALL CP_RPT_TodaysCounts();', function (error, results, fields) {
|
||||
if (error) throw error;
|
||||
res.end(JSON.stringify(results));
|
||||
//console.log(results);
|
||||
//res.end();
|
||||
});
|
||||
});
|
||||
|
||||
server.get('/api/campaign',function(req, res){
|
||||
connection.query('CALL CP_RPT_TweetsByScreenName ();',function(error, results, fields){
|
||||
if(error) throw error;
|
||||
//https://www.sitepoint.com/using-node-mysql-javascript-client/
|
||||
res.end(JSON.stringify(results));
|
||||
//res.end(results);
|
||||
});
|
||||
});
|
||||
|
||||
/*
|
||||
server.get('',function(){
|
||||
connection.query('',function(){});
|
||||
});
|
||||
*/
|
||||
|
||||
//rest api to get a single employee data
|
||||
//rest api to create a new record into mysql database
|
||||
//rest api to update record into mysql database
|
||||
//rest api to delete record from mysql database
|
||||
|
||||
|
||||
server.get('/', function(req, res){
|
||||
console.log('Welcome Nodejs restify');
|
||||
});
|
||||
|
||||
server.listen(3001, function () {
|
||||
console.log('%s listening at %s', server.name, server.url);
|
||||
});
|
Loading…
x
Reference in New Issue
Block a user