Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const sequelizeInit = require('./sequelize.js')
- const sequelize = sequelizeInit.initSequelize()
- const User = require('./models/userModel.js')
- const Role = require('./models/roleModel.js')
- const Course = require('./models/courseModel.js')
- const Queue = require('./models/queueModel.js')
- const fs = require('fs')
- var Users
- var Roles
- var StudentStatistics
- var CourseStatistics
- var Courses
- var Queues
- // contains sequelize models of the queues.
- // Dynamic length depending on how many queues (=#courses) we have
- const queueModels = []
- const courses = []
- const users = []
- const roles = []
- const queues = []
- // creating sequelize models
- exports.initDatabase = () => {
- // sequelizeInit.autoSequelize()
- initConstants()
- }
- function initConstants () {
- Users = sequelize.import('./seq_models/users1.js')
- Roles = sequelize.import('./seq_models/roles1.js')
- StudentStatistics = sequelize.import('./seq_models/studentStatistics1.js')
- CourseStatistics = sequelize.import('./seq_models/courseStatistics1.js')
- Courses = sequelize.import('./seq_models/courses1.js')
- Queues = sequelize.import('./seq_models/queues1.js')
- linkModels()
- fillCache()
- // initQueueModels()
- }
- // creates sequelize models for the queues
- function initQueueModels () {
- fs.readdir('./seq_models', function (err, items) {
- if (err) {
- console.error(err)
- throw err
- } else {
- for (let file of items) {
- if (file.substring(0, 2) === file.substring(0, 2).toUpperCase()) {
- let seqConstant = sequelize.import('./seq_models/' + file)
- queueModels.push({ ID: file.substring(0, file.length - 3), model: seqConstant })
- }
- }
- linkModels()
- fillCache()
- }
- })
- }
- function linkModels () {
- Queues.belongsTo(Users, { foreignKey: 'student' })
- Queues.belongsTo(Courses, { foreignKey: 'courseID' })
- console.log('linked')
- // for (let i = 0; i < queueModels.length; i++) {
- // queueModels[i].model.belongsTo(Users, { foreignKey: 'student' })
- // }
- }
- function fillCache () {
- fillUsers()
- fillRoles()
- fillQueuesAndCourses()
- }
- // fill User fillCache
- // works
- function fillUsers () {
- Users.findAll().then(res => {
- for (let user of res) {
- // console.log(user.ID, user.name, user.email, user.password)
- users.push(new User(
- {
- ID: user.ID,
- name: user.name,
- email: user.email,
- password: user.password
- }
- )
- )
- // console.log(users)
- }
- })
- }
- // fill roles cache
- // works
- function fillRoles () {
- Roles.findAll().then(res => {
- for (let role of res) {
- roles.push(new Role(
- {
- ID: role.ID,
- courseID: role.courseID,
- role: role.role
- })
- )
- }
- })
- }
- function fillQueuesAndCourses () {
- Queues.findAll({
- include: [
- { model: Users },
- { model: Courses }
- ],
- attributes: ['users1.name', 'student', 'task', 'location', 'comment', 'queueNo', 'enterTime', 'courses1.name', 'courses1.ID']
- }).then(res => {
- for (let queue of res) {
- // console.log('------this queue query',queue.student, queue.users1.name, queue.task, queue.location, queue.queueNo, queue.enterTime, queue.courses1.name, queue.courses1.ID)
- if (courses.some(e => e.ID === queue.courses1.ID)) {
- } else {
- courses.push(new Course({
- ID: queue.courses1.ID,
- name: queue.courses1.name
- }))
- console.log(courses)
- }
- // adds students in queue to given course
- var queueItem = {
- studentID: queue.student,
- studentName: queue.users1.name,
- task: queue.task,
- location: queue.location,
- queueNo: queue.queueNo, // kanske inte behövs
- enterTime: queue.enterTime
- }
- if (queues.some(e => e.ID === queue.courses1.ID)) {
- appendToQueue(queue.courses1.ID, queueItem)
- } else {
- console.log('elseQueue')
- queues.push(new Queue({
- ID: queue.courses1.ID,
- name: queue.courses1.name,
- queue: [queueItem]
- }))
- }
- }
- }).catch(error => {
- console.error(error)
- throw error
- })
- }
- function appendToQueue (ID, queueItem) {
- for (let i = 0; i < queues.length; i++) {
- if (queues[i].ID === ID) {
- queues[i].queue.push(queueItem)
- console.log(queues[i].queue)
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement