diff --git a/package.json b/package.json index 73319b1..5a5a654 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,8 @@ "express": "^4.16.3", "helmet": "^3.20.0", "mongoose": "^5.7.1", - "socket.io": "^2.2.0" + "socket.io": "^2.3.0", + "unirest": "^0.6.0" }, "devDependencies": { "xo": "*" diff --git a/src/controllers/qr-login.js b/src/controllers/qr-login.js index 837197f..76103a7 100644 --- a/src/controllers/qr-login.js +++ b/src/controllers/qr-login.js @@ -2,7 +2,30 @@ import { successResponse, failureResponse } from "../utils/http-responses"; const QRlogin = async (req, res) => { - + var unirest = require("unirest"); + + var request = unirest("GET", "https://pierre2106j-qrcode.p.rapidapi.com/api"); + + request.query({ + "backcolor": "ffffff", + "pixel": 10, + "ecl": "M", + "forecolor": "000000", + "type": "text", + "text": req.query.sessionId, + }); + + request.headers({ + "x-rapidapi-host": "pierre2106j-qrcode.p.rapidapi.com", + "x-rapidapi-key": "fc75185558msh06c3180c89bc398p1b7309jsna44e69b2617f" + }); + + + request.end(function (response) { + if (response.error) failureResponse({ res, error: response.error }); + + successResponse({ res, data: response.body }); + }); }; const registerQRAttemp = async (req, res) => { @@ -11,4 +34,4 @@ const registerQRAttemp = async (req, res) => { -export { addUser }; +export { registerQRAttemp, QRlogin }; diff --git a/src/index.js b/src/index.js index 1332731..e6e73e5 100644 --- a/src/index.js +++ b/src/index.js @@ -3,22 +3,19 @@ import './env'; import {Server as httpServer} from 'http'; import express from 'express'; import bodyParser from 'body-parser'; -import socket from 'socket.io'; +import socketio from 'socket.io'; import helmet from 'helmet'; import cors from 'cors'; import routes from './routes'; +import { initializeSocket } from './socketio' import './services/mongo'; +const {PORT = 3000} = process.env; + const app = express(); const server = httpServer(app); -const io = socket(server); - -app.use((req, res, next) => { - req.io = io; - next(); -}); +const io = socketio(server); -const {PORT = 3000} = process.env; app.use(cors()); app.use(helmet()); @@ -26,12 +23,12 @@ app.use(bodyParser.json()); app.use(bodyParser.urlencoded({extended: false})); app.disable('x-powered-by'); -io.on('connection', () => { - console.log('Connected'); -}); - +// Routes app.use('/', routes); +// SocketIO +initializeSocket(io); + server.listen(PORT, () => { console.log(`> Listening on http://localhost:${PORT}`); }); diff --git a/src/routes/index.js b/src/routes/index.js index e418684..5290bdf 100644 --- a/src/routes/index.js +++ b/src/routes/index.js @@ -2,8 +2,9 @@ import {Router as expressRouter} from 'express'; import {identify} from '../controllers/identify'; import {compile} from '../controllers/compile'; import {failureResponse} from '../utils/http-responses'; -import {addCode, getUserSnippets, updateSnippet} from '../controllers/code' -import {addUser} from '../controllers/user' +import {addCode, getUserSnippets, updateSnippet} from '../controllers/code'; +import {addUser} from '../controllers/user'; +import { QRlogin} from '../controllers/qr-login'; const router = expressRouter(); @@ -12,6 +13,8 @@ router.get('/', (req, res) => failureResponse({res})); /* Indentify programming language */ router.post('/identify', identify); +router.get('/qr', QRlogin); + /* Compile snippet */ router.post('/compile', compile); diff --git a/src/socketio/index.js b/src/socketio/index.js new file mode 100644 index 0000000..060f389 --- /dev/null +++ b/src/socketio/index.js @@ -0,0 +1,27 @@ +const mapOfConnectedDevices = {} + +export const initializeSocket = (socketio) => { + socketio.on('connect', () => { + console.log('connected'); + }) + + socketio.on('connection', (io) => { + console.log('connection stablished'); + + + io.joinRoom(io.query.sessionId) + io.on('linkToSession', (data) => {// mobile wont listen, only emits + io.emit('linkToSession', data) + }) + + io.on('type', () => {}) + io.on('disconnect', () => { + console.log('disconnected'); + }) + }) +} + +{ + sessionId: 'web', + email: '', +} \ No newline at end of file