Commit a2c4c811 authored by SHREYANSH JAIN's avatar SHREYANSH JAIN

added backend

parents
FROM node:latest
# Create app directory
WORKDIR /usr/src/app
# Install app dependencies
# A wildcard is used to ensure both package.json AND package-lock.json are copied
# where available (npm@5+)
COPY package*.json ./
# If you are building your code for production
# RUN npm ci --only=production
# Bundle app source
COPY . .
EXPOSE 8080
CMD [ "node", "main.js" ]
\ No newline at end of file
var {google} = require("googleapis");
var serviceAccount = require('./serviceKey.json');
var scopes = [
"https://www.googleapis.com/auth/userinfo.email",
"https://www.googleapis.com/auth/firebase.database"
];
var jwtClient = new google.auth.JWT(
serviceAccount.client_email,
null,
serviceAccount.private_key,
scopes
);
module.exports = function (callback) {
jwtClient.authorize(function(error, tokens) {
callback(error, tokens);
})
};
\ No newline at end of file
'use strict';
const request = require('request');
const express = require('express');
let accessToken;
require('./gAuth.js')(function (error,tokens){
if (error)
console.log("Error making request to generate access token:", error);
else if (tokens.access_token === null)
console.log("Provided service account does not have permission to generate access tokens");
else
accessToken = tokens.access_token;
}.bind(this));
const PORT = 8080;
const HOST = 'localhost';
const app = express();
app.use(express.json());
app.get('/', (req, res) => {
res.send('Hello world\n');
});
app.post('/evaluate', (req, res) => {
res.send('Hello world\n');
});
app.post('/contribute', (req, res) => {
var body = req.body;
var score = body.score;
var essay = body.essay;
var prompt = body.prompt;
var options = {
uri: `https://softlab-ba722.firebaseio.com/${prompt}/.json`,
method: 'POST',
body: {
"essay": essay,
"score": score
},
headers: {
"Content-Type":"application/json",
"Authorization":`Bearer ${accessToken}`
},
json: true
};
request(options, function(err,response,body){
res.send("Success");
})
});
app.get('/:id', (req, res) => {
var prompt = req.params.id;
var options = {
uri: `https://softlab-ba722.firebaseio.com/${prompt}.json`,
method: 'GET',
headers: {
"Content-Type":"application/json",
"Authorization":`Bearer ${accessToken}`
},
json: true
};
request(options, function(err,response,body){
res.setHeader('Content-Type', 'application/json');
res.end(JSON.stringify(body, null, 3));
})
});
app.listen(PORT, HOST);
console.log(`Running on http://${HOST}:${PORT}`)
\ No newline at end of file
{
"name": "docker_web_app",
"version": "1.0.0",
"description": "Node.js on Docker",
"author": "First Last <first.last@example.com>",
"main": "server.js",
"scripts": {
"start": "node main.js"
},
"dependencies": {
"express": "^4.16.1",
"request": "^2.88.0",
"googleapis": "^44.0.0"
}
}
{
"type": "service_account",
"project_id": "softlab-ba722",
"private_key_id": "69f29483585f2434ae3f23bcf849644fac6112f5",
"private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCaCroabgwY8SVy\nanWrO2WTSCN/ukk8RQPp6yWuOjuEzjifsc9+zuA/kgrY7yQQDC7CgdAmJgdJgeKv\nD4o9hkjvqBDSlvYm035S530S/OdOFF9QTjMqonzRn8KlF3Vgutwke3g4ORQ0yK5r\n30sLqDlSYWxsj10t/wZyxqDopP7Q/pZpPA6fywquL5glLDk85AyTpSB5BPMlZXAV\nhoRdK2zxkUvWmcptt73fpmQlJZ/hrPt8sQC74R/IVmSGOh82vd5hFTVEvLFvhy/w\nNtQtoPFP7KBdnyaojFyPvDIfd6Kjk/Z665O8qEnsvgaira2Tkwe6sv8fEpF9G5Pc\ncj6CcgB5AgMBAAECggEAA1F5VlHqDUx+icMs0zo1kzFh4GG/K57x+WNBHcpv10nI\n8vm11k23C2+GL8ug+36DsFlzBitaC1WSsEI1sGMY5Z65dAvf9BCovzjw2wybH/W0\n4uo4VHIJHcvi+cLyWpnT3a5SNeXW31c2WKkH+RGP4IwsNX92GqRMe4L3WuOZAJ/+\nv85m/okNixtubkJa4OVhilw+lHudXoCq8GKa6WY0ESw7QfBe5Fl+hOs/RA9tFjMH\nMwmYKnp3UmdPuRSEQb38BtGtEixvMsE/FjaA0e2U32IQ6eqE8QAPMMn+v4RGoCNV\n5Y4yZjQBHmb7mnPJbxcVmBgYPxxJo6cR+vVWqowSYQKBgQDYO3Z1jRH8SbIlzbHz\nrSQocP+UShpLrVYsR/24E5uOmaeD8QIoNsI4rC96NH+PUiJog2dzdBjAuVl/aw5h\n126K82X/EwzzNwyn4NCeehZpWAc2vS+omsrnowO3aT92cqdJ3sGG+xz7dhlkab0x\nkw9o2RO4es7Acr/XE7XPObZwEQKBgQC2Xz+30h0X+WqJHCyuPLJB14WwUYQuaAzT\n0Zs9h8jQW5ORjljJTD3Cx7P9g4puBCoTqiBlsNevXkxAYfvxL/AH5INNnRTQulMe\nqpsbvM6dAnhUuyY2pkIrjodUrLHp1ok0oZZcSicD3GYppXFvMeEcYNcFJHZ0V/on\nrRHpY4bx6QKBgC7Xasj6P1wsxsfDsHn+Fugf2m3QQ7QDH7jF+6OFs9wHUy+U5Qe7\nHQXT3xEVEFEG1OdZF+79xmLxg/7DPUFavtqg8YZ5JQQG99niLK83+WTmqeFkyE85\nAR1+xc5UoWfSXIT3GWtZOKUMp2GGOnLjzaHD7K65A9LSyNYZsffrI6dRAoGBAKNy\nWjj1Jv4Fm2WmyqSd4WUBM+ACLuUoe9abVPaga2nRqUAaw5glrHSVZsseyUIwmUVm\nhAKfq66QZOaO6q4OuKFaPBOjZLRtSXGCleEWJlaxkAbgdC8mcsd2xfMtk4ZvsChr\nacbs7mqXbTiF/lQZ8Bbu88a4FzHOZ3SHuDXj7V2BAoGBALmcmMmX80y1JwlcdStp\nHaPqpSIv7O/AmlOCJe4jtBKUPf8MtcGiyu3pF2KPN9AdYrJdlVrzhi/KDzOmV66J\njXFznZq/i59cZzUz5rtV6sDVvokn+teAxazVkJheuzlhxZchn+a5WOB+KUNpiFVj\ntoqoXAFLA+0g3WQtNhzxOcWn\n-----END PRIVATE KEY-----\n",
"client_email": "firebase-adminsdk-kbpgc@softlab-ba722.iam.gserviceaccount.com",
"client_id": "109339398149190862850",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://oauth2.googleapis.com/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/firebase-adminsdk-kbpgc%40softlab-ba722.iam.gserviceaccount.com"
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment