lms-sync 1.0.11 → 1.0.13
Sign up to get free protection for your applications and to get access to all the features.
- package/apiConnections/mapping.js +133 -66
- package/apiConnections/tablePick.js +80 -0
- package/app.js +2 -2
- package/models/index.js +1 -1
- package/package.json +1 -1
@@ -1,7 +1,9 @@
|
|
1
|
-
const db = require('../models')
|
1
|
+
const {db, schema} = require('../models')
|
2
2
|
const logger = require('../utils/logger')
|
3
3
|
const api = require('../apiConnections/apiConnects')
|
4
4
|
const moment = require('moment')
|
5
|
+
const { Picked } = require('./semesterPick')
|
6
|
+
|
5
7
|
const {
|
6
8
|
AcademicDepartments,
|
7
9
|
AcademicYears,
|
@@ -37,6 +39,11 @@ const server = {
|
|
37
39
|
let errorCounter = 0
|
38
40
|
let uniqueErrors = new Set()
|
39
41
|
|
42
|
+
const db_schema = schema
|
43
|
+
// let maxIds = await Campuses.max('_id'); = await Campuses.max('_id'); // Fetch maximum _id directly from the campuses model
|
44
|
+
// let maxId = maxIds|| 0;
|
45
|
+
// await db.sequelize.query(`ALTER SEQUENCE ${db_schema}."Campuses__id_seq" RESTART WITH ${maxId + 1}`);
|
46
|
+
|
40
47
|
for (let i = 0; i < campusApi.length; i++){
|
41
48
|
try {
|
42
49
|
|
@@ -62,9 +69,9 @@ const server = {
|
|
62
69
|
createdCounter++;
|
63
70
|
}
|
64
71
|
else {
|
65
|
-
const errorMsg = `Record campus already exists [${record.code}] - ${record.name} `;
|
72
|
+
const errorMsg = `Record campus already exists: [${record.code}] - ${record.name} `;
|
66
73
|
if (!uniqueErrors.has(errorMsg)) {
|
67
|
-
logger.error(`${errorCounter + 1}/${errorCounter + 1}
|
74
|
+
logger.error(`${errorCounter + 1}/${errorCounter + 1} ${errorMsg}`);
|
68
75
|
uniqueErrors.add(errorMsg);
|
69
76
|
errorCounter++;
|
70
77
|
}
|
@@ -117,6 +124,11 @@ const server = {
|
|
117
124
|
let errorCounter = 0
|
118
125
|
let uniqueErrors = new Set()
|
119
126
|
|
127
|
+
const db_schema = schema
|
128
|
+
// let maxIds = await Campuses.max('_id'); = await Colleges.max('_id'); // Fetch maximum _id directly from the Colleges model
|
129
|
+
// let maxId = maxIds|| 0;
|
130
|
+
// await db.sequelize.query(`ALTER SEQUENCE ${db_schema}."Colleges__id_seq" RESTART WITH ${maxId + 1}`);
|
131
|
+
|
120
132
|
for (let i = 0; i < collegeApi.length; i++){
|
121
133
|
try {
|
122
134
|
let _college = collegeApi[i]
|
@@ -150,7 +162,7 @@ const server = {
|
|
150
162
|
const errorMsg = `Record college already exists: [${record.code}] - ${record.name} `
|
151
163
|
|
152
164
|
if (!uniqueErrors.has(errorMsg)) {
|
153
|
-
logger.error(`${errorCounter + 1}/${errorCounter + 1}
|
165
|
+
logger.error(`${errorCounter + 1}/${errorCounter + 1} ${errorMsg}`);
|
154
166
|
uniqueErrors.add(errorMsg);
|
155
167
|
errorCounter++;
|
156
168
|
}
|
@@ -205,6 +217,10 @@ const server = {
|
|
205
217
|
let errorCounter = 0
|
206
218
|
let uniqueErrors = new Set()
|
207
219
|
|
220
|
+
const db_schema = schema
|
221
|
+
// let maxIds = await Campuses.max('_id'); = await AcademicDepartments.max('_id'); // Fetch maximum _id directly from the AcademicDepartments model
|
222
|
+
// let maxId = maxIds|| 0;
|
223
|
+
// await db.sequelize.query(`ALTER SEQUENCE ${db_schema}."AcademicDepartments__id_seq" RESTART WITH ${maxId + 1}`);
|
208
224
|
for (let i = 0; i < departmentApi.length; i++){
|
209
225
|
try {
|
210
226
|
let _acadDept = departmentApi[i]
|
@@ -245,10 +261,10 @@ const server = {
|
|
245
261
|
createdCounter++;
|
246
262
|
}
|
247
263
|
else {
|
248
|
-
const errorMsg = `Record academic department already exists [${record.code}] - ${record.name} `
|
264
|
+
const errorMsg = `Record academic department already exists: [${record.code}] - ${record.name} `
|
249
265
|
|
250
266
|
if (!uniqueErrors.has(errorMsg)) {
|
251
|
-
logger.error(`${errorCounter + 1}/${errorCounter + 1}
|
267
|
+
logger.error(`${errorCounter + 1}/${errorCounter + 1} ${errorMsg}`);
|
252
268
|
uniqueErrors.add(errorMsg);
|
253
269
|
errorCounter++;
|
254
270
|
}
|
@@ -306,6 +322,11 @@ const server = {
|
|
306
322
|
let errorCounter = 0
|
307
323
|
let uniqueErrors = new Set()
|
308
324
|
|
325
|
+
const db_schema = schema
|
326
|
+
// let maxIds = await Campuses.max('_id'); = await Courses.max('_id'); // Fetch maximum _id directly from the Courses model
|
327
|
+
// let maxId = maxIds|| 0;
|
328
|
+
// await db.sequelize.query(`ALTER SEQUENCE ${db_schema}."Courses__id_seq" RESTART WITH ${maxId + 1}`);
|
329
|
+
|
309
330
|
for (let i = 0; i < studentApi.length; i++){
|
310
331
|
try {
|
311
332
|
|
@@ -346,10 +367,10 @@ const server = {
|
|
346
367
|
createdCounter++
|
347
368
|
} else {
|
348
369
|
|
349
|
-
const errorMsg = `Record course already exists [${record.code}] - ${record.name}, Major in ${record.major}`;
|
370
|
+
const errorMsg = `Record course already exists: [${record.code}] - ${record.name}, Major in ${record.major}`;
|
350
371
|
|
351
372
|
if (!uniqueErrors.has(errorMsg)) {
|
352
|
-
logger.error(`${errorCounter + 1}/${errorCounter + 1}
|
373
|
+
logger.error(`${errorCounter + 1}/${errorCounter + 1} ${errorMsg}`);
|
353
374
|
uniqueErrors.add(errorMsg);
|
354
375
|
errorCounter++;
|
355
376
|
}
|
@@ -408,6 +429,13 @@ const server = {
|
|
408
429
|
let errorCounter = 0
|
409
430
|
let uniqueErrors = new Set()
|
410
431
|
|
432
|
+
|
433
|
+
const db_schema = schema
|
434
|
+
// let maxIds = await Campuses.max('_id'); = await Rooms.max('_id'); // Fetch maximum _id directly from the Rooms model
|
435
|
+
// let maxId = maxIds|| 0;
|
436
|
+
// await db.sequelize.query(`ALTER SEQUENCE ${db_schema}."Rooms__id_seq" RESTART WITH ${maxId + 1}`);
|
437
|
+
|
438
|
+
|
411
439
|
for (let i = 0; i < roomApi.length; i++){
|
412
440
|
try {
|
413
441
|
let _room = roomApi[i]
|
@@ -455,10 +483,10 @@ const server = {
|
|
455
483
|
createdCounter++;
|
456
484
|
}
|
457
485
|
else {
|
458
|
-
const errorMsg = `Record room already exists ${record.name}`;
|
486
|
+
const errorMsg = `Record room already exists: ${record.name}`;
|
459
487
|
|
460
488
|
if (!uniqueErrors.has(errorMsg)) {
|
461
|
-
logger.error(`${errorCounter + 1}/${errorCounter + 1}
|
489
|
+
logger.error(`${errorCounter + 1}/${errorCounter + 1} ${errorMsg}`);
|
462
490
|
uniqueErrors.add(errorMsg);
|
463
491
|
errorCounter++;
|
464
492
|
}
|
@@ -512,6 +540,13 @@ const server = {
|
|
512
540
|
let errorCounter = 0
|
513
541
|
let uniqueErrors = new Set()
|
514
542
|
|
543
|
+
|
544
|
+
const db_schema = schema
|
545
|
+
// let maxIds = await Campuses.max('_id'); = await Instructors.max('_id'); // Fetch maximum _id directly from the Instructors model
|
546
|
+
// let maxId = maxIds|| 0;
|
547
|
+
// await db.sequelize.query(`ALTER SEQUENCE ${db_schema}."Instructors__id_seq" RESTART WITH ${maxId + 1}`);
|
548
|
+
|
549
|
+
|
515
550
|
for (let i = 0; i < instructorApi.length; i++){
|
516
551
|
try {
|
517
552
|
let _instructor = instructorApi[i]
|
@@ -554,10 +589,10 @@ const server = {
|
|
554
589
|
createdCounter++;
|
555
590
|
}
|
556
591
|
else {
|
557
|
-
const errorMsg = `Record instructor already exists [${record.employeeNumber}] - ${record.lastName}, ${record.firstName}`;
|
592
|
+
const errorMsg = `Record instructor already exists: [${record.employeeNumber}] - ${record.lastName}, ${record.firstName}`;
|
558
593
|
|
559
594
|
if (!uniqueErrors.has(errorMsg)) {
|
560
|
-
logger.error(`${errorCounter + 1}/${errorCounter + 1}
|
595
|
+
logger.error(`${errorCounter + 1}/${errorCounter + 1} ${errorMsg}`);
|
561
596
|
uniqueErrors.add(errorMsg);
|
562
597
|
errorCounter++;
|
563
598
|
}
|
@@ -609,6 +644,13 @@ const server = {
|
|
609
644
|
|
610
645
|
const { acadYearResult, currentSchoolYear } = acadYearApi;
|
611
646
|
|
647
|
+
|
648
|
+
const db_schema = schema
|
649
|
+
// let maxIds = await Campuses.max('_id'); = await AcademicYears.max('_id'); // Fetch maximum _id directly from the AcademicYears model
|
650
|
+
// let maxId = maxIds|| 0;
|
651
|
+
// await db.sequelize.query(`ALTER SEQUENCE ${db_schema}."AcademicYears__id_seq" RESTART WITH ${maxId + 1}`);
|
652
|
+
|
653
|
+
|
612
654
|
for (let i = 0; i < acadYearResult.length; i++){
|
613
655
|
try {
|
614
656
|
let _acadyear = acadYearResult[i]
|
@@ -645,9 +687,9 @@ const server = {
|
|
645
687
|
createdCounter++;
|
646
688
|
}
|
647
689
|
else {
|
648
|
-
const errorMsg = `Record academic year already exists ${record.from} - ${record.to}`;
|
690
|
+
const errorMsg = `Record academic year already exists: ${record.from} - ${record.to}`;
|
649
691
|
if (!uniqueErrors.has(errorMsg)) {
|
650
|
-
logger.error(`${errorCounter + 1}/${errorCounter + 1}
|
692
|
+
logger.error(`${errorCounter + 1}/${errorCounter + 1} ${errorMsg}`);
|
651
693
|
uniqueErrors.add(errorMsg);
|
652
694
|
errorCounter++;
|
653
695
|
}
|
@@ -700,6 +742,13 @@ const server = {
|
|
700
742
|
let errorCounter = 0
|
701
743
|
let uniqueErrors = new Set()
|
702
744
|
|
745
|
+
|
746
|
+
const db_schema = schema
|
747
|
+
// let maxIds = await Campuses.max('_id'); = await Subjects.max('_id'); // Fetch maximum _id directly from the Subjects model
|
748
|
+
// let maxId = maxIds|| 0;
|
749
|
+
// await db.sequelize.query(`ALTER SEQUENCE ${db_schema}."Subjects__id_seq" RESTART WITH ${maxId + 1}`);
|
750
|
+
|
751
|
+
|
703
752
|
for (let i = 0; i < studentSubject.length; i++){
|
704
753
|
try {
|
705
754
|
let _subject = studentSubject[i]
|
@@ -752,10 +801,10 @@ const server = {
|
|
752
801
|
createdCounter++;
|
753
802
|
}
|
754
803
|
else {
|
755
|
-
const errorMsg = `Record subject already exists [${record.code}], ${record.name}`;
|
804
|
+
const errorMsg = `Record subject already exists: [${record.code}], ${record.name}`;
|
756
805
|
|
757
806
|
if (!uniqueErrors.has(errorMsg)) {
|
758
|
-
logger.error(`${errorCounter + 1}/${errorCounter + 1}
|
807
|
+
logger.error(`${errorCounter + 1}/${errorCounter + 1} ${errorMsg}`);
|
759
808
|
uniqueErrors.add(errorMsg);
|
760
809
|
errorCounter++;
|
761
810
|
}
|
@@ -806,6 +855,12 @@ const server = {
|
|
806
855
|
let errorCounter = 0
|
807
856
|
let uniqueErrors = new Set()
|
808
857
|
|
858
|
+
|
859
|
+
const db_schema = schema
|
860
|
+
// let maxIds = await Campuses.max('_id'); = await Schedules.max('_id'); // Fetch maximum _id directly from the Schedules model
|
861
|
+
// let maxId = maxIds|| 0;
|
862
|
+
// await db.sequelize.query(`ALTER SEQUENCE ${db_schema}."Schedules__id_seq" RESTART WITH ${maxId + 1}`);
|
863
|
+
|
809
864
|
for (let i = 0; i < scheduleApi.length; i++){
|
810
865
|
try {
|
811
866
|
let _schedule = scheduleApi[i]
|
@@ -867,10 +922,10 @@ const server = {
|
|
867
922
|
createdCounter++;
|
868
923
|
}
|
869
924
|
else {
|
870
|
-
const errorMsg = `Record schedule already exists [${record.from} - ${record.to}] ${record.name}`;
|
925
|
+
const errorMsg = `Record schedule already exists: [${record.from} - ${record.to}] ${record.name}`;
|
871
926
|
|
872
927
|
if (!uniqueErrors.has(errorMsg)) {
|
873
|
-
logger.error(`${errorCounter + 1}/${errorCounter + 1}
|
928
|
+
logger.error(`${errorCounter + 1}/${errorCounter + 1} ${errorMsg}`);
|
874
929
|
uniqueErrors.add(errorMsg);
|
875
930
|
errorCounter++;
|
876
931
|
}
|
@@ -928,6 +983,11 @@ const server = {
|
|
928
983
|
const emailDomain = 'default.msc.edu.ph';
|
929
984
|
|
930
985
|
|
986
|
+
const db_schema = schema
|
987
|
+
// let maxIds = await Campuses.max('_id'); = await Students.max('_id'); // Fetch maximum _id directly from the Students model
|
988
|
+
// let maxId = maxIds|| 0;
|
989
|
+
// await db.sequelize.query(`ALTER SEQUENCE ${db_schema}."Students__id_seq" RESTART WITH ${maxId + 1}`);
|
990
|
+
|
931
991
|
const {data} = studentApi
|
932
992
|
for (let i = 0; i < data.length; i++){
|
933
993
|
try {
|
@@ -950,18 +1010,19 @@ const server = {
|
|
950
1010
|
let courseDefault = 999999
|
951
1011
|
let collegeDefault = 999999
|
952
1012
|
|
953
|
-
let semester = "2nd Semester"
|
954
|
-
let _semester = semesterSeq.find(sem => sem.code === semester)
|
955
|
-
|
956
|
-
let acadFrom = 2023
|
957
|
-
let acadTo = 2024
|
958
|
-
|
959
|
-
|
960
1013
|
|
1014
|
+
let fromPrompts = await Picked()
|
1015
|
+
|
961
1016
|
|
1017
|
+
// let semester = "2nd Semester"
|
1018
|
+
let semester = fromPrompts.semester
|
1019
|
+
let yearsFrom = fromPrompts.yearFrom
|
1020
|
+
let yearsTo = fromPrompts.yearTo
|
962
1021
|
|
963
|
-
let
|
1022
|
+
let _semester = semesterSeq.find(sem => sem.code === semester)
|
1023
|
+
let _acadYear = acadYearSeq.find(yr => yr.from === parseInt(yearsFrom) && yr.to === parseInt(yearsTo))
|
964
1024
|
|
1025
|
+
// return
|
965
1026
|
let [record, created] = await Students.findOrCreate({
|
966
1027
|
where:{
|
967
1028
|
studentNumber: _student?.student_number,
|
@@ -986,10 +1047,10 @@ const server = {
|
|
986
1047
|
}
|
987
1048
|
else {
|
988
1049
|
|
989
|
-
const errorMsg = `Record student already exists [${record.studentNumber}] ${record.lastName}, ${record.firstName} ${record.middleName}`;
|
1050
|
+
const errorMsg = `Record student already exists: [${record.studentNumber}] ${record.lastName}, ${record.firstName} ${record.middleName}`;
|
990
1051
|
|
991
1052
|
if (!uniqueErrors.has(errorMsg)) {
|
992
|
-
logger.error(`${errorCounter + 1}/${errorCounter + 1}
|
1053
|
+
logger.error(`${errorCounter + 1}/${errorCounter + 1} ${errorMsg}`);
|
993
1054
|
uniqueErrors.add(errorMsg);
|
994
1055
|
errorCounter++;
|
995
1056
|
}
|
@@ -1052,6 +1113,13 @@ const server = {
|
|
1052
1113
|
let errorCounter = 0
|
1053
1114
|
let uniqueErrors = new Set()
|
1054
1115
|
|
1116
|
+
|
1117
|
+
const db_schema = schema
|
1118
|
+
// let maxIds = await Campuses.max('_id'); = await Sections.max('_id'); // Fetch maximum _id directly from the Sections model
|
1119
|
+
// let maxId = maxIds|| 0;
|
1120
|
+
// await db.sequelize.query(`ALTER SEQUENCE ${db_schema}."Sections__id_seq" RESTART WITH ${maxId + 1}`);
|
1121
|
+
|
1122
|
+
|
1055
1123
|
for (let i = 0; i < student.length; i++) {
|
1056
1124
|
try {
|
1057
1125
|
|
@@ -1088,21 +1156,16 @@ const server = {
|
|
1088
1156
|
continue;
|
1089
1157
|
}
|
1090
1158
|
|
1091
|
-
|
1092
|
-
|
1093
|
-
|
1094
1159
|
let code = sections ?? 'CODE'
|
1095
1160
|
code = code.split(/\s+/).map((word) => word.charAt(0).toUpperCase()).join('')
|
1096
1161
|
|
1097
|
-
|
1098
|
-
|
1099
|
-
|
1100
|
-
|
1101
|
-
|
1102
|
-
|
1103
|
-
let _acadYear = acadYearSeq.find(yr => yr.from === acadFrom && yr.to === acadTo)
|
1162
|
+
let fromPrompts = await Picked()
|
1163
|
+
let semester = fromPrompts.semester
|
1164
|
+
let yearsFrom = fromPrompts.yearFrom
|
1165
|
+
let yearsTo = fromPrompts.yearTo
|
1166
|
+
let _semester = semesterSeq.find(sem => sem.code === semester)
|
1167
|
+
let _acadYear = acadYearSeq.find(yr => yr.from === parseInt(yearsFrom) && yr.to === parseInt(yearsTo))
|
1104
1168
|
|
1105
|
-
|
1106
1169
|
let modifiedById = userMail._id;
|
1107
1170
|
let createdById = userMail._id;
|
1108
1171
|
|
@@ -1135,6 +1198,7 @@ const server = {
|
|
1135
1198
|
// campusId: _campus?._id??null,
|
1136
1199
|
// modifiedById,
|
1137
1200
|
// createdById,
|
1201
|
+
|
1138
1202
|
}
|
1139
1203
|
});
|
1140
1204
|
|
@@ -1143,10 +1207,10 @@ const server = {
|
|
1143
1207
|
createdCounter++;
|
1144
1208
|
} else {
|
1145
1209
|
|
1146
|
-
const errorMsg = `Record section already exists ${record.name} `;
|
1210
|
+
const errorMsg = `Record section already exists: ${record.name} `;
|
1147
1211
|
|
1148
1212
|
if (!uniqueErrors.has(errorMsg)) {
|
1149
|
-
logger.error(`${errorCounter + 1}/${errorCounter + 1}
|
1213
|
+
logger.error(`${errorCounter + 1}/${errorCounter + 1} ${errorMsg}`);
|
1150
1214
|
uniqueErrors.add(errorMsg);
|
1151
1215
|
errorCounter++;
|
1152
1216
|
}
|
@@ -1205,6 +1269,13 @@ const server = {
|
|
1205
1269
|
let errorCounter = 0
|
1206
1270
|
let uniqueErrors = new Set()
|
1207
1271
|
|
1272
|
+
|
1273
|
+
const db_schema = schema
|
1274
|
+
// let maxIds = await Campuses.max('_id'); = await EnrolledStudents.max('_id'); // Fetch maximum _id directly from the EnrolledStudents model
|
1275
|
+
// let maxId = maxIds|| 0;
|
1276
|
+
// await db.sequelize.query(`ALTER SEQUENCE ${db_schema}."EnrolledStudents__id_seq" RESTART WITH ${maxId + 1}`);
|
1277
|
+
|
1278
|
+
|
1208
1279
|
for (let i = 0; i < studentApi.length; i++){
|
1209
1280
|
try {
|
1210
1281
|
|
@@ -1217,12 +1288,14 @@ const server = {
|
|
1217
1288
|
|
1218
1289
|
let _students = studentApi[i].subjects_enrolled
|
1219
1290
|
|
1220
|
-
let
|
1291
|
+
let fromPrompts = await Picked()
|
1292
|
+
|
1293
|
+
let semester = fromPrompts.semester
|
1294
|
+
let yearsFrom = fromPrompts.yearFrom
|
1295
|
+
let yearsTo = fromPrompts.yearTo
|
1221
1296
|
let _semester = semesterSeq.find(sem => sem.code === semester)
|
1297
|
+
let _acadYear = acadYearSeq.find(yr => yr.from === parseInt(yearsFrom) && yr.to === parseInt(yearsTo))
|
1222
1298
|
|
1223
|
-
let acadFrom = 2023
|
1224
|
-
let acadTo = 2024
|
1225
|
-
let _acadYear = acadYearSeq.find(yr => yr.from === acadFrom && yr.to === acadTo)
|
1226
1299
|
|
1227
1300
|
let modifiedById = userMail._id;
|
1228
1301
|
let createdById = userMail._id;
|
@@ -1294,10 +1367,10 @@ const server = {
|
|
1294
1367
|
createdCounter++;
|
1295
1368
|
} else {
|
1296
1369
|
|
1297
|
-
const errorMsg = `Record enrolled student already exists studentId = [${record.studentId}], sectionId = [${record.sectionId}], instructorId = [${record.instructorId}]`;
|
1370
|
+
const errorMsg = `Record enrolled student already exists: studentId = [${record.studentId}], sectionId = [${record.sectionId}], instructorId = [${record.instructorId}]`;
|
1298
1371
|
|
1299
1372
|
if (!uniqueErrors.has(errorMsg)) {
|
1300
|
-
logger.error(`${errorCounter + 1}/${errorCounter + 1}
|
1373
|
+
logger.error(`${errorCounter + 1}/${errorCounter + 1} ${errorMsg}`);
|
1301
1374
|
uniqueErrors.add(errorMsg);
|
1302
1375
|
errorCounter++;
|
1303
1376
|
}
|
@@ -1330,23 +1403,6 @@ const server = {
|
|
1330
1403
|
|
1331
1404
|
}
|
1332
1405
|
},
|
1333
|
-
|
1334
|
-
|
1335
|
-
async executeAll(){
|
1336
|
-
await this.Campus()
|
1337
|
-
await this.College()
|
1338
|
-
await this.AcademicDepartment()
|
1339
|
-
await this.Course()
|
1340
|
-
await this.Room()
|
1341
|
-
await this.Instructor()
|
1342
|
-
await this.AcademicYear()
|
1343
|
-
await this.Subject()
|
1344
|
-
await this.Schedule()
|
1345
|
-
await this.Student()
|
1346
|
-
await this.Section()
|
1347
|
-
await this.EnrolledStudent()
|
1348
|
-
|
1349
|
-
}
|
1350
1406
|
}
|
1351
1407
|
|
1352
1408
|
async function runServerFunctions() {
|
@@ -1385,7 +1441,18 @@ async function runServerFunctions() {
|
|
1385
1441
|
// module.exports = server
|
1386
1442
|
|
1387
1443
|
module.exports = {
|
1444
|
+
serverTable: server,
|
1445
|
+
Campus: server.Campus,
|
1446
|
+
College: server.College,
|
1447
|
+
AcademicDepartments: server.AcademicDepartment,
|
1448
|
+
Course: server.Course,
|
1449
|
+
Room: server.Room,
|
1450
|
+
Instructor: server.Instructor,
|
1451
|
+
AcademicYear: server.AcademicYear,
|
1452
|
+
Subject: server.Subject,
|
1453
|
+
Schedule: server.Schedule,
|
1454
|
+
Student: server.Student,
|
1455
|
+
Section: server.Section,
|
1456
|
+
EnrolledStudent: server.EnrolledStudent,
|
1388
1457
|
Server: runServerFunctions,
|
1389
|
-
Enrolled: server.EnrolledStudent,
|
1390
|
-
Section: server.Section
|
1391
1458
|
}
|
@@ -0,0 +1,80 @@
|
|
1
|
+
const prompts = require('prompts')
|
2
|
+
const mappings = require('./mapping')
|
3
|
+
|
4
|
+
let picker = null;
|
5
|
+
|
6
|
+
async function promptYearSem() {
|
7
|
+
const response = await prompts([
|
8
|
+
{
|
9
|
+
type: 'select',
|
10
|
+
name: 'Table',
|
11
|
+
message: 'Please Select Table:',
|
12
|
+
choices: [
|
13
|
+
{ title: 'All Tables', value: 'AllTables' },
|
14
|
+
{ title: 'Campus', value: 'Campus' },
|
15
|
+
{ title: 'College', value: 'College' },
|
16
|
+
{ title: 'AcademicDepartments', value: 'AcademicDepartments' },
|
17
|
+
{ title: 'Course', value: 'Course' },
|
18
|
+
{ title: 'Room', value: 'Room' },
|
19
|
+
{ title: 'Instructor', value: 'Instructor' },
|
20
|
+
{ title: 'AcademicYear', value: 'AcademicYear' },
|
21
|
+
{ title: 'Subject', value: 'Subject' },
|
22
|
+
{ title: 'Schedule', value: 'Schedule' },
|
23
|
+
{ title: 'Student', value: 'Student' },
|
24
|
+
{ title: 'Section', value: 'Section' },
|
25
|
+
{ title: 'EnrolledStudent', value: 'EnrolledStudent' },
|
26
|
+
],
|
27
|
+
initial: 0
|
28
|
+
}
|
29
|
+
]);
|
30
|
+
|
31
|
+
picker = {
|
32
|
+
table: response.Table,
|
33
|
+
};
|
34
|
+
}
|
35
|
+
|
36
|
+
async function Tables() {
|
37
|
+
try {
|
38
|
+
while (true) {
|
39
|
+
if (!picker) {
|
40
|
+
await promptYearSem()
|
41
|
+
}
|
42
|
+
|
43
|
+
let pickTable = picker
|
44
|
+
|
45
|
+
if (pickTable.table === 'AllTables') {
|
46
|
+
await mappings.Server()
|
47
|
+
} else {
|
48
|
+
await mappings[pickTable.table]()
|
49
|
+
}
|
50
|
+
|
51
|
+
console.log('\nMigration completed for the selected table.')
|
52
|
+
|
53
|
+
picker = null // reset picker after completing the migration
|
54
|
+
|
55
|
+
const response = await prompts([
|
56
|
+
{
|
57
|
+
type: 'confirm',
|
58
|
+
name: 'continue',
|
59
|
+
message: 'Do you want to pick another table?',
|
60
|
+
choices:[
|
61
|
+
{title: 'Yes', value: 'yes'},
|
62
|
+
{title: 'No', value: 'no'}
|
63
|
+
],
|
64
|
+
initial: true
|
65
|
+
}
|
66
|
+
])
|
67
|
+
|
68
|
+
if (!response.continue) {
|
69
|
+
break; // ex the loop if the user doesn't want to continue
|
70
|
+
}
|
71
|
+
}
|
72
|
+
|
73
|
+
} catch (error) {
|
74
|
+
console.error(error);
|
75
|
+
}
|
76
|
+
}
|
77
|
+
|
78
|
+
module.exports = {
|
79
|
+
Tables
|
80
|
+
}
|
package/app.js
CHANGED
@@ -2,8 +2,8 @@
|
|
2
2
|
|
3
3
|
const sequelizeStart = require('./apiConnections/sequelizeConnection');
|
4
4
|
const apiConnects = require('./apiConnections/apiConnects')
|
5
|
-
const mappings = require('./apiConnections/mapping');
|
6
5
|
const picks = require('./apiConnections/semesterPick')
|
6
|
+
const tables = require('./apiConnections/tablePick')
|
7
7
|
|
8
8
|
async function start(){
|
9
9
|
try {
|
@@ -25,7 +25,7 @@ async function start(){
|
|
25
25
|
|
26
26
|
if(apis && startSequel){
|
27
27
|
console.log('Both connections successful. Starting migrations...');
|
28
|
-
await
|
28
|
+
const tablesPick = await tables.Tables()
|
29
29
|
}
|
30
30
|
else {
|
31
31
|
console.error('Failed to establish database and api connections. Migrations not started.');
|
package/models/index.js
CHANGED