mongoose + tests

This commit is contained in:
Primakov Alexandr Alexandrovich
2024-10-16 11:06:23 +03:00
parent 2cfcd7347b
commit 4b0d9b4dbc
1295 changed files with 4579 additions and 1719 deletions

View File

@@ -0,0 +1,9 @@
// eslint-disable-next-line new-cap
const router = require('express').Router()
router.use(require('./login'))
router.use(require('./registration'))
router.use(require('./logrec'))
router.use(require('./passrec'))
module.exports = router

View File

@@ -0,0 +1,3 @@
{
"status": "error"
}

View File

@@ -0,0 +1,16 @@
// eslint-disable-next-line new-cap
const router = require('express').Router()
router.post('/postAuthorization', (req, res) => {
if (req?.session?.[req.body.login]?.login) {
const { login } = req.session[req.body.login]
const { pass } = req.session[req.body.login]
if (login === req.body.login && pass === req.body.pass) {
return res.send(req.session[req.body.login])
}
}
res.send(require('./error.json'))
})
module.exports = router

View File

@@ -0,0 +1,3 @@
{
"status": "success"
}

View File

@@ -0,0 +1,3 @@
{
"status": "error"
}

View File

@@ -0,0 +1,40 @@
// eslint-disable-next-line new-cap
const router = require('express').Router()
router.post('/postLoginRec', (req, res) => {
if (Object.getOwnPropertyNames(req.session).some((item) => item === req.body.phone)) {
const loginRec = req.session[req.body.phone].login
if (req.body.phoneRecForm === 0) {
if (req.session[loginRec].phone === req.body.phone) {
const code = Math.floor(Math.random() * (9999 - 1000 + 1)) + 1000
const ret1 = {
status: 'success',
phonecode: code,
}
req.session[loginRec].phonecode = ret1.phonecode
return res.send(ret1)
}
res.send(require('./error.json'))
}
if (req.body.phoneRecForm === 1) {
if (req.session[loginRec].phonecode === req.body.phonecode) {
const ret = {
login: req.session[loginRec].login,
phone: req.session[loginRec].phone,
status: 'success',
}
req.session[loginRec].phonecode = undefined
return res.send(ret)
}
const ret = {
phonecode: req.session[loginRec].phonecode,
status: 'error',
}
return res.send(ret)
}
}
res.send(require('./error.json'))
})
module.exports = router

View File

@@ -0,0 +1,3 @@
{
"status": "success"
}

View File

@@ -0,0 +1,3 @@
{
"status": "error"
}

View File

@@ -0,0 +1,44 @@
// eslint-disable-next-line new-cap
const router = require('express').Router()
router.post('/postPassRec', (req, res) => {
if (req.body.login in req.session) {
if (req.body.phoneRecForm === 0) {
const code = Math.floor(Math.random() * (9999 - 1000 + 1)) + 1000
const ret1 = {
status: 'success',
phonecode: code,
}
req.session[req.body.login].phonecode = ret1.phonecode
return res.send(ret1)
}
if (req.body.phoneRecForm === 1) {
if (req.session[req.body.login].phonecode === req.body.phonecode) {
const ret = {
login: req.session[req.body.login].login,
phone: req.session[req.body.login].phone,
phonecode: req.session[req.body.login].phonecode,
status: 'success',
}
return res.send(ret)
}
const ret = {
phonecode: req.session[req.body.login].phonecode,
status: 'err',
}
return res.send(ret)
}
if (req.body.phoneRecForm === 2) {
const ret = {
status: 'success',
}
req.session[req.body.login].phonecode = undefined
req.session[req.body.login].pass = req.body.phonenewpass
return res.send(ret)
}
}
res.send(require('./error.json'))
})
module.exports = router

View File

@@ -0,0 +1,3 @@
{
"status": "success"
}

View File

@@ -0,0 +1,3 @@
{
"status": "dooble"
}

View File

@@ -0,0 +1,3 @@
{
"status": "dooblePhone"
}

View File

@@ -0,0 +1,3 @@
{
"status": "error"
}

View File

@@ -0,0 +1,26 @@
// eslint-disable-next-line new-cap
const router = require('express').Router()
router.post('/postRegistration', (req, res) => {
if (req.body.phone && req.body.login && req.body.pass) {
if (!req.session[req.body.login]) {
const ret = {
login: req.body.login,
pass: req.body.pass,
phone: req.body.phone,
status: 'success',
}
req.session[req.body.login] = ret
req.session[req.body.phone] = ret
} else if (req.session[req.body.login]) {
return res.send(require('./dooble.json'))
} else if (req.session[req.body.phone]) {
return res.send(require('./dooblephone.json'))
}
return res.send(require('./success.json'))
// return res.send(req.session);
}
res.send(require('./error.json'))
})
module.exports = router

View File

@@ -0,0 +1,3 @@
{
"status": "success"
}

View File

@@ -0,0 +1,40 @@
{
"status": {
"code": 0
},
"banners": [
{
"img": "first-slide.gif",
"title": "Fast and quality service",
"description": "1",
"color": "black"
},
{
"img": "second-slide.gif",
"title": "Affordable prices",
"description": "2",
"color": "black"
},
{
"img": "third-slide.gif",
"title": "Courteous staff",
"description": "3",
"color": "black"
},
{
"img": "fourth-slide.gif",
"title": "Comfortable waiting area",
"description": "3",
"color": "black"
},
{
"img": "fifth-slide.gif",
"title": "Convenient operating hours",
"description": "3",
"color": "black"
}
]
}

View File

@@ -0,0 +1,40 @@
{
"status": {
"code": 0
},
"banners": [
{
"img": "first-slide.gif",
"title": "Быстрое и качественное обслуживание",
"description": "1",
"color": "black"
},
{
"img": "second-slide.gif",
"title": "Доступные цены",
"description": "2",
"color": "black"
},
{
"img": "third-slide.gif",
"title": "Вежливый персонал",
"description": "3",
"color": "black"
},
{
"img": "fourth-slide.gif",
"title": "Комфортная зона ожидания",
"description": "3",
"color": "black"
},
{
"img": "fifth-slide.gif",
"title": "Удобное время работы",
"description": "3",
"color": "black"
}
]
}

View File

@@ -0,0 +1,23 @@
// eslint-disable-next-line new-cap
const router = require('express').Router()
router.get('/getBanners', (req, res) => {
switch (req.query.lng) {
case 'en':
res.send(require('./carousel-en.json'))
break
case 'ru':
res.send(require('./carousel-ru.json'))
break
case 'en-En':
res.send(require('./carousel-en.json'))
break
case 'ru-Ru':
res.send(require('./carousel-ru.json'))
break
default:
console.log('Unknown language')
}
})
module.exports = router

View File

@@ -0,0 +1,9 @@
// eslint-disable-next-line new-cap
const router = require('express').Router()
router.use(require('./carousel'))
router.use(require('./map'))
router.use('/auth', require('./auth'))
router.use(require('./prices'))
module.exports = router

View File

@@ -0,0 +1,23 @@
// eslint-disable-next-line new-cap
const router = require('express').Router()
router.get('/get-map-info', (req, res) => {
switch (req.query.lng) {
case 'en':
res.send(require('./map-info-en.json'))
break
case 'ru':
res.send(require('./map-info-ru.json'))
break
case 'en-En':
res.send(require('./map-info-en.json'))
break
case 'ru-Ru':
res.send(require('./map-info-ru.json'))
break
default:
console.log('Unknown language')
}
})
module.exports = router

View File

@@ -0,0 +1,37 @@
{
"address": [
{
"id": "1",
"x": "55.746971",
"y": "48.743549",
"name": "InnoWashing",
"phone": "7654321",
"address": "Russia, Republic of Tatarstan, Verkhneuslonsky District, Innopolis, 106 Sportivnaya Street",
"workingMode": "08:00-20:00",
"services": ["Contactless car wash", "Salon wash"],
"availableTime": ["7.00-8.00", "11.00-12.00", "17.00-18.00", "19.00-20.00", "21.00-22.00"]
},
{
"id": "2",
"x": "55.754105",
"y": "48.743341",
"name": "Car Wash №1",
"phone": "1234567",
"address": "Russia, Republic of Tatarstan, Verkhneuslonsky District, Innopolis, 1 University Street",
"workingMode": "09:00-20:00",
"services": ["3-in-1 Wash", "Nano Wash", "Salon Wash", "Contactless Wash"],
"availableTime": ["9.00-10.00", "12.00-13.00", "15.00-16.00"]
},
{
"id": "3",
"x": "55.784105",
"y": "48.733341",
"name": "Hare's car wash",
"phone": "00000",
"address": "Russia, Republic of Tatarstan, Verkhneuslonsky district, Makarievsky forest",
"workingMode": "24 hours",
"services": ["Paw wash", "Juniper wash", "Hose wash"],
"availableTime": ["9.00-24.00"]
}
]
}

View File

@@ -0,0 +1,37 @@
{
"address": [
{
"id": "1",
"x": "55.746971",
"y": "48.743549",
"name": "InnoWashing",
"phone": "7654321",
"address": "Россия, Республика Татарстан, Верхнеуслонский район, Иннополис, Спортивная улица, 106",
"workingMode": "08:0020:00",
"services": ["Бесконтактная мойка", "Мойка салона"],
"availableTime": ["7.00-8.00", "11.00-12.00", "17.00-18.00", "19.00-20.00", "21.00-22.00"]
},
{
"id": "2",
"x": "55.754105",
"y": "48.743341",
"name": "Автомойка №1",
"phone": "1234567",
"address": "Россия, Республика Татарстан, Верхнеуслонский район, Иннополис, Университетская улица, 1",
"workingMode": "09:0020:00",
"services": ["Мойка 3 в 1", "Наномойка", "Мойка салона","Бесконтактная мойка"],
"availableTime": ["9.00-10.00", "12.00-13.00", "15.00-16.00"]
},
{
"id": "3",
"x": "55.784105",
"y": "48.733341",
"name": "Автомойка у зайца",
"phone": "00000",
"address": "Россия, Республика Татарстан, Верхнеуслонский район, Макарьевский лес",
"workingMode": "24 часа",
"services": ["Мойка лапами", "Мойка можжевеловой мочалкой", "Мойка из шланга"],
"availableTime": ["9.00-24.00"]
}
]
}

View File

@@ -0,0 +1,22 @@
// eslint-disable-next-line new-cap
const router = require('express').Router()
router.get('/get-prices', (req, res) => {
switch (req.query.lng) {
case 'en':
res.send(require('./prices-en.json'))
break
case 'ru':
res.send(require('./prices-ru.json'))
break
case 'en-En':
res.send(require('./prices-en.json'))
break
case 'ru-Ru':
res.send(require('./prices-en.json'))
break
default:
console.log('Unknown language')
}
})
module.exports = router

View File

@@ -0,0 +1,59 @@
{
"prices": [
{
"id": "1",
"name": "Contactless car wash",
"price": "459"
},
{
"id": "2",
"name": "Nanowash",
"price": "759"
},
{
"id": "3",
"name": "Deluxe wash",
"price": "1559"
},
{
"id": "4",
"name": "Comprehensive wash",
"price": "859"
},
{
"id": "5",
"name": "Comprehensive nano wash",
"price": "11559"
},
{
"id": "6",
"name": "Antireagent",
"price": "1400"
},
{
"id": "7",
"name": "Antireagent complex",
"price": "1800"
},
{
"id": "8",
"name": "Express wash",
"price": "250"
},
{
"id": "9",
"name": "Vacuum cleaner",
"price": "250"
},
{
"id": "10",
"name": "Glass",
"price": "250"
},
{
"id": "11",
"name": "Plastic polish",
"price": "250"
}
]
}

View File

@@ -0,0 +1,59 @@
{
"prices": [
{
"id": "1",
"name": "Бесконтактная мойка",
"price": "459"
},
{
"id": "2",
"name": "Наномойка",
"price": "759"
},
{
"id": "3",
"name": "Мойка люкс",
"price": "1559"
},
{
"id": "4",
"name": "Комплексная мойка",
"price": "859"
},
{
"id": "5",
"name": "Комплексная наномойка",
"price": "11559"
},
{
"id": "6",
"name": "Антиреагент",
"price": "1400"
},
{
"id": "7",
"name": "Антиреагент комплекс",
"price": "1800"
},
{
"id": "8",
"name": "Экспресс-мойка",
"price": "250"
},
{
"id": "9",
"name": "Пылесос",
"price": "250"
},
{
"id": "10",
"name": "Стекла",
"price": "250"
},
{
"id": "11",
"name": "Полироль пластика",
"price": "250"
}
]
}