lms-sync 1.0.11 → 1.0.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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