Files
api/src/db/data.js
T

241 lines
6.3 KiB
JavaScript
Raw Normal View History

2020-10-01 16:20:56 -05:00
const colors = require('colors')
const { Op } = require('sequelize')
const csv = require('csv-parser')
const fs = require('fs')
const Carrito = require('./tables/Carrito')
const Carrera = require('./tables/Carrera')
const CarreraPlantel = require('./tables/CarreraPlantel')
const Plantel = require('./tables/Plantel')
const Equipo = require('./tables/Equipo')
const Horario = require('./tables/Horario')
const Mesa = require('./tables/Mesa')
const Multa = require('./tables/Multa')
const Operador = require('./tables/Operador')
const Parte = require('./tables/Parte')
const Prestamo = require('./tables/Prestamo')
const Reporte = require('./tables/Reporte')
const Salon = require('./tables/Salon')
const Status = require('./tables/Status')
const TipoCarrito = require('./tables/TipoCarrito')
const TipoMulta = require('./tables/TipoMulta')
const TipoOperador = require('./tables/TipoOperador')
const TipoUsuario = require('./tables/TipoUsuario')
const Usuario = require('./tables/Usuario')
const dataTipoCarrito = async () => {
const data = ['Chromebook', 'iPad']
console.log('\nInstalando catalogo tipo_carrito'.bold.blue)
for (let i = 0; i < data.length; i++) {
console.log(`Se ha creado el registro ${data[i]}`.magenta)
await TipoCarrito.create({ nombre: data[i] })
}
}
const dataTipoMulta = async () => {
const data = ['Servicio', 'Red']
console.log('\nInstalando catalogo tipo_Multa'.bold.blue)
for (let i = 0; i < data.length; i++) {
console.log(`Se ha creado el registro ${data[i]}`.magenta)
await TipoMulta.create({ nombre: data[i] })
}
}
const dataTipoOperador = async () => {
const data = ['admin', 'operador']
console.log('\nInstalando catalogo tipo_operador'.bold.blue)
for (let i = 0; i < data.length; i++) {
console.log(`Se ha creado el registro ${data[i]}`.magenta)
await TipoOperador.create({ nombre: data[i] })
}
}
const dataTipoUsuario = async () => {
const data = [
'alumno_interno',
'alumno_externo',
'profesor_interno',
'profesor_externo',
]
console.log('\nInstalando catalogo tipo_usuario'.bold.blue)
for (let i = 0; i < data.length; i++) {
console.log(`Se ha creado el registro ${data[i]}`.magenta)
await TipoUsuario.create({ nombre: data[i] })
}
}
const dataStatus = async () => {
const data = ['Activo', 'Cargando', 'Mantenimiento', 'Dañado', 'Perdida']
console.log('\nInstalando catalogo Status'.bold.blue)
for (let i = 0; i < data.length; i++) {
console.log(`Se ha creado el registro ${data[i]}`.magenta)
await Status.create({ status: data[i] })
}
}
const dataMesa = async () => {
console.log('\nInstalando catalogo Mesa'.bold.blue)
for (let i = 1; i <= 150; i++) {
console.log(`Se ha creado la mesa ${i}`.magenta)
await Mesa.create({})
}
}
const dataSalon = async () => {
const data = [
'San Luis Potosí',
'Sinaloa',
'Sonora',
'Tabasco',
'Tamaulipas',
'Tlaxcala',
'Veracruz',
'Yucatán',
'Zacatecas',
]
console.log('\nInstalando catalogo Salon'.bold.blue)
for (let i = 0; i < data.length; i++) {
console.log(`Se ha creado el Salon ${data[i]}`.magenta)
await Salon.create({ salon: data[i] })
}
}
const dataHorario = async () => {
const data = [
'8:00-10:00',
'10:00-12:00',
'12:00-14:00',
'14:00-16:00',
'16:00-18:00',
'18:00-20:00',
]
console.log('\nInstalando catalogo Horario'.bold.blue)
for (let i = 0; i < data.length; i++) {
console.log(`Se ha creado el Horario ${data[i]}`.magenta)
await Horario.create({ horario: data[i] })
}
}
const csvJson = (filepath) => {
return new Promise((resolve, reject) => {
let data = []
fs.createReadStream(filepath)
.on('error', (error) => reject(error))
.pipe(csv())
.on('data', (row) => data.push(row))
.on('end', () => resolve(data))
})
}
const dataCarrera = async () => {
const data = await csvJson('./carrera.csv')
.then((res) => res)
.catch((err) => console.log(err))
for (let i = 0; i < data.length; i++) {
await Carrera.findOne({ where: { idCarrera: Number(data[i].clave) } })
.then(async (res) => {
if (!res) {
console.log(`Se ha creado la Carrera ${data[i].carrera}`.magenta)
await Carrera.create({
idCarrera: Number(data[i].clave),
carrera: data[i].carrera,
nivel: data[i].nivel,
})
}
})
.catch((err) => {
console.log(err)
})
}
}
const dataPlantel = async () => {
const data = await csvJson('./plantel.csv')
.then((res) => res)
.catch((err) => console.log(err))
for (let i = 0; i < data.length; i++) {
await Plantel.findOne({ where: { idPlantel: Number(data[i].cve_plantel) } })
.then(async (res) => {
if (!res) {
console.log(
`Se ha creado el Plantel ${data[i].nombre_plantel}`.magenta
)
await Plantel.create({
idPlantel: Number(data[i].cve_plantel),
plantel: data[i].nombre_plantel,
})
} else console.log('Repetido')
})
.catch((err) => {
console.log(err)
})
}
}
const dataCarreraPlantel = async () => {
const data = await csvJson('./carrera_plantel.csv')
.then((res) => res)
.catch((err) => console.log(err))
for (let i = 0; i < data.length; i++) {
await CarreraPlantel.findOne({
where: {
[Op.and]: [
{ idPlantel: Number(data[i].plantel) },
{ idCarrera: Number(data[i].carrera) },
],
},
})
.then(async (res) => {
if (!res) {
console.log(
`Se ha creado la CarreraPlantel con carrera ${data[i].carrera} y plantel ${data[i].plantel}`
.magenta
)
await CarreraPlantel.create({
idCarrera: data[i].carrera,
idPlantel: data[i].plantel,
})
} else console.log('Repetido')
})
.catch((err) => {
console.log(err)
})
}
}
// Parte
// Carrito
// Equipo
const install = async () => {
await dataTipoCarrito()
await dataTipoMulta()
await dataTipoUsuario()
await dataTipoOperador()
await dataStatus()
await dataMesa()
await dataSalon()
await dataHorario()
await dataCarrera()
await dataPlantel()
await dataCarreraPlantel()
console.log(
'\nSe ha instalado exitosamente los catalogos.\n'.underline.bold.green
)
process.exit()
}
install()