Browse Source

Initial commit

master
Rino Grupp 4 years ago
commit
746a847075
6 changed files with 3327 additions and 0 deletions
  1. +23
    -0
      .gitignore
  2. +29
    -0
      backup
  3. +76
    -0
      fuck.js
  4. +184
    -0
      index.js
  5. +2987
    -0
      package-lock.json
  6. +28
    -0
      package.json

+ 23
- 0
.gitignore View File

@ -0,0 +1,23 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
# dependencies
/node_modules
/.pnp
.pnp.js
# testing
/coverage
# production
/build
# misc
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local
npm-debug.log*
yarn-debug.log*
yarn-error.log*

+ 29
- 0
backup View File

@ -0,0 +1,29 @@
app.post('/v1/createScooter', function(req, res) {
console.log(req.body.insert)
let types=""
let values=""
req.body.insert.forEach(element => {
types += element.name+','
values += '"'+element.value+'",'
console.log(typeof(element.value))
})
types = types.slice(0, -1)
values = values.slice(0, -1)
values.replace('\'','"')
console.log(values)
connection.query("INSERT INTO Roller ("+types+") VALUES ("+values+");", function(error, results) {
if(error) {
console.log(error)
res.sendStatus(500)
}else {
res.sendStatus(200)
}
})
})

+ 76
- 0
fuck.js View File

@ -0,0 +1,76 @@
const MongoClient = require('mongodb').MongoClient;
// Connection URL
const url = 'mongodb://localhost:27017';
// Database text
const dbtext = 'electro';
var a = {
"properties": [
{
"text":"Auto (Kofferraum)",
"value":"auto"
},
{
"text":"Treppe (hochtragen)",
"value":"treppe"
},
{
"text":"Pendeln mit (Bus& Bahn)",
"value":"pendeln"
},
{
"text":"Passt in die Garderobe (klein)",
"value":"klein"
},
{
"text":"Garage (groß)",
"value":"gross"
},
{
"text":"Fahrrad Größe (mittelgroß)",
"value":"mittel"
},
{
"text":"Akku entnehmbar",
"value":"akku_entnehmbar"
},
{
"text":"Ohne Akku fahren",
"value":"ohne_akku"
},
{
"text":"Lenker vorhanden",
"value":"lenker"
},
{
"text":"Sattel vorhanden",
"value":"sattel"
},
{
"text":"Gepäcktauglich",
"value":"gepaeck"
},
{
"text":"Straßenzulassung",
"value":"zulassung"
},
]
}
console.log(a)
MongoClient.connect(url, function(err, client) {
console.log("Connected successfully to server");
const db = client.db(dbtext);
// Get the documents collection
const collection = db.collection('categories');
// Insert some documents
collection.bulkWrite([
{ insertOne: {"document": a}}
]
);
});

+ 184
- 0
index.js View File

@ -0,0 +1,184 @@
const express = require('express');
const cors = require('cors')
const bodyParser = require('body-parser')
const MongoClient = require('mongodb').MongoClient;
const mongo = require('mongodb')
const fileUpload = require('express-fileupload');
const mongoose = require('mongoose');
const fs = require('fs');
// Connection URL
const url = 'mongodb://192.168.0.2:27017';
// Database Name
const dbName = 'electro';
mongoose.connect('mongodb://192.168.0.2:27017/electro', {useNewUrlParser: true})
var imageSchema = new mongoose.Schema({ data: Buffer, contentType: String, fk_roller: {type: mongoose.Schema.Types.ObjectId, ref: "roller"} })
var Image = mongoose.model('images', imageSchema);
var app = express();
var categories = {};
var questions = {};
var image
app.use(cors())
app.use(fileUpload())
// parse application/json
app.use(bodyParser.json())
// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }))
app.get('/', function (req, res) {
res.send('Hello World!');
});
app.get('/v1/filteredScooters', (req, res) => {
dbFilter = {}
result = []
if(req.query.filter !== undefined){
req.query.filter.forEach(element => {
dbFilter[element] = true
})
}
MongoClient.connect(url, function(err, client) {
const db = client.db(dbName);
// Get the documents collection
const collection = db.collection('roller');
// Insert some documents
collection.find(dbFilter).project().toArray((err,doc) => {
res.send(doc)
})
})
})
app.get('/v1/questions', (req, res) => {
res.send([questions[0]])
//res.send(questions)
})
app.get('/v1/categories', function(req, res){
res.send(categories)
})
app.post('/v1/updateScooter', function(req, res) {
let newScore = "";
let data = JSON.parse(req.body.data)
connection.query(`SELECT * FROM Roller WHERE PK_Roller = ${req.query.pk}`, function (error, results) {
results = results[0]
for(r in data){
let value = ((results[r] * results["counter"]) + data[r])/(results["counter"]+1)
newScore += `${r} = ${value}, `
}
newScore += `counter = ${results["counter"] +1}`
connection.query(`UPDATE Roller SET ${newScore} WHERE PK_Roller = ${req.query.pk}`, function(error, results){
if(error){
console.log(error)
res.sendStatus(500)
}else {
res.sendStatus(200)
}
})
})
})
app.post('/v1/createScooter', function(req, res) {
let temp = {}
req.body.insert.forEach(element => {
temp[element.name] = element.value
})
MongoClient.connect(url, function(err, client) {
const db = client.db(dbName);
// Get the documents collection
const collection = db.collection('roller');
// Insert some documents
collection.bulkWrite([{insertOne: {"document": temp}}], function(err, result) {
console.log(result)
res.send(result.insertedIds['0'])
});
});
})
app.get('/v1/scooterImage', (req, res) => {
//Image.findOne({'fk_roller': req.query.id}, (err, file) => {
//console.log(file)
//res.send(file)
//})
MongoClient.connect(url, function(err, client) {
const db = client.db(dbName);
// Get the documents collection
const collection = db.collection('images');
// Insert some documents
collection.findOne({fk_roller: mongo.ObjectID(req.query.id)}, (err,doc)=>{
res.send(doc.data.$binary)
})
})
})
app.post('/v1/addImage', (req, res) => {
var i = new Image;
i.data = req.files.file.data
i.contentType = req.files.file.mimetype
i.fk_roller = req.query.id
i.save((err,a) => {
if(err){
console.log(err)
}else{
res.send(a)
}
})
})
const getCategories = (store, collectionName) => {
MongoClient.connect(url, function(err, client) {
const db = client.db(dbName);
// Get the documents collection
const collection = db.collection(collectionName);
// Insert some documents
collection.find().project({_id: 0}).forEach((doc) => {
let key = Object.keys(doc)[0]
store[key] = doc[key]
})
})
}
const getQuestions = (store, collectionName) => {
MongoClient.connect(url, function(err, client) {
const db = client.db(dbName);
// Get the documents collection
const collection = db.collection(collectionName);
// Insert some documents
collection.find().sort({number:1}).project({_id: 0}).toArray((err,doc) => {
console.log(doc)
questions = doc
})
})
}
getCategories(categories, 'categories')
getQuestions(questions, 'questions')
app.listen(3001);

+ 2987
- 0
package-lock.json
File diff suppressed because it is too large
View File


+ 28
- 0
package.json View File

@ -0,0 +1,28 @@
{
"name": "matze-backend2",
"version": "1.0.0",
"description": "",
"main": "index.js",
"watch": {
"dev": "*.js"
},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"dev": "node .",
"watch": "npm-watch"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"@mysql/xdevapi": "^8.0.16",
"body-parser": "^1.19.0",
"cors": "^2.8.5",
"express": "^4.16.4",
"express-fileupload": "^1.1.4",
"mongodb": "^3.2.4",
"mongoose": "^5.5.7",
"mysql": "^2.17.1",
"npm-watch": "^0.6.0"
}
}

Loading…
Cancel
Save