Skip to content

Commit e4df2d8

Browse files
committed
feat: course id on update in schedule
1 parent 912e407 commit e4df2d8

File tree

5 files changed

+107
-25
lines changed

5 files changed

+107
-25
lines changed

backend/app/scrap-registrations/scrap_registrations.ts

Lines changed: 24 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import * as cheerio from "cheerio";
22

3-
import logger from "@adonisjs/core/services/logger";
3+
//.import logger from "@adonisjs/core/services/logger";
44

55
interface GroupDetails {
66
name: string;
@@ -61,7 +61,7 @@ const scrapDepartments = async () => {
6161
const departments: Department[] = [];
6262
const response = await fetchData(DEPARTMENTS_URL);
6363
if (!response.ok) {
64-
logger.info("Something went wrong in fetching departments");
64+
console.log("Something went wrong in fetching departments");
6565
return;
6666
}
6767
const body = await response.text();
@@ -94,7 +94,7 @@ const scrapRegistrations = async (departmentUrl: string) => {
9494
const registrationsUrls: string[] = [];
9595
const response = await fetchData(departmentUrl);
9696
if (!response.ok) {
97-
logger.info("Something went wrong in fetching registrations");
97+
console.log("Something went wrong in fetching registrations");
9898
return;
9999
}
100100
const body = await response.text();
@@ -123,7 +123,7 @@ const scrapCourses = async (registrationUrl: string) => {
123123
const coursesUrls: string[] = [];
124124
const response = await fetchData(registrationUrl);
125125
if (!response.ok) {
126-
logger.info("Something went wrong in fetching courses");
126+
console.log("Something went wrong in fetching courses");
127127
return;
128128
}
129129

@@ -150,7 +150,7 @@ const scrapCourseNameGroupsUrls = async (courseUrl: string) => {
150150
let courseCode = "";
151151
const response = await fetchData(courseUrl);
152152
if (!response.ok) {
153-
logger.info("Something went wrong in fetching groups");
153+
console.log("Something went wrong in fetching groups");
154154
return;
155155
}
156156

@@ -192,7 +192,7 @@ const scrapGroupsUrls = async (groupUrl: string) => {
192192
const groupsUrls: string[] = [];
193193
const response = await fetchData(groupUrl);
194194
if (!response.ok) {
195-
logger.info("Something went wrong in fetching groups");
195+
console.log("Something went wrong in fetching groups");
196196
return;
197197
}
198198

@@ -206,13 +206,14 @@ const scrapGroupsUrls = async (groupUrl: string) => {
206206
groupsUrls.push(link);
207207
}
208208
});
209+
console.log(groupsUrls);
209210
return groupsUrls;
210211
};
211212

212213
const scrapGroupDetails = async (groupUrl: string) => {
213214
const response = await fetchData(groupUrl);
214215
if (!response.ok) {
215-
logger.info("Something went wrong in fetching groups");
216+
console.log("Something went wrong in fetching groups");
216217
return;
217218
}
218219

@@ -371,3 +372,19 @@ export {
371372
scrapGroupsUrls,
372373
scrapGroupDetails,
373374
};
375+
376+
// void scrapCourses(
377+
// "https://web.usos.pwr.edu.pl/kontroler.php?_action=katalog2/przedmioty/szukajPrzedmiotu&method=rej&rej_kod=R00-2425L-SJOSI2ECTS&callback=g_6c714bad",
378+
// );
379+
380+
// void scrapGroupsUrls(
381+
// "https://web.usos.pwr.edu.pl/kontroler.php?_action=katalog2/przedmioty/pokazGrupyZajec&zaj_cyk_id=79085",
382+
// );
383+
384+
// void scrapGroupDetails(
385+
// "https://web.usos.pwr.edu.pl/kontroler.php?_action=katalog2/przedmioty/pokazZajecia&zaj_cyk_id=79429&gr_nr=1",
386+
// );
387+
388+
// void scrapCourseNameGroupsUrls(
389+
// "https://web.usos.pwr.edu.pl/kontroler.php?_action=katalog2/przedmioty/pokazPrzedmiot&prz_kod=SJO000-SI0014C&callback=g_4e252a77",
390+
// );
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import { BaseSchema } from "@adonisjs/lucid/schema";
2+
3+
export default class UpdateCourseIdForeignKey extends BaseSchema {
4+
protected tableName = "schedule_courses";
5+
6+
public async up() {
7+
this.schema.alterTable(this.tableName, (table) => {
8+
table.dropForeign(["course_id"]); // Remove the existing foreign key
9+
table
10+
.foreign("course_id")
11+
.references("courses.id")
12+
.onUpdate("CASCADE")
13+
.onDelete("CASCADE");
14+
});
15+
}
16+
17+
public async down() {
18+
this.schema.alterTable(this.tableName, (table) => {
19+
table.dropForeign(["course_id"]); // Remove the modified foreign key
20+
table.foreign("course_id").references("courses.id").onDelete("CASCADE"); // Revert to original
21+
});
22+
}
23+
}
Lines changed: 14 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,23 @@
11
import { BaseSchema } from "@adonisjs/lucid/schema";
22

3-
export default class extends BaseSchema {
3+
export default class UpdateCourseIdForeignKey extends BaseSchema {
44
protected tableName = "groups";
55

6-
async up() {
7-
this.schema.createTable(this.tableName, (table) => {
8-
table.increments("id");
9-
table.string("name");
10-
table.time("start_time");
11-
table.time("end_time");
12-
table.string("group");
13-
table.string("lecturer");
14-
table.enum("week", ["-", "TN", "TP"]);
15-
table.string("day");
16-
table.string("type");
17-
table.string("url");
18-
table.string("course_id").references("courses.id").onDelete("CASCADE");
19-
table.timestamp("created_at").defaultTo("NOW()");
20-
table.timestamp("updated_at");
6+
public async up() {
7+
this.schema.alterTable(this.tableName, (table) => {
8+
table.dropForeign("course_id"); // Remove old foreign key
9+
table
10+
.string("course_id")
11+
.references("courses.id")
12+
.onUpdate("CASCADE") // Enable ON UPDATE CASCADE
13+
.onDelete("CASCADE");
2114
});
2215
}
2316

24-
async down() {
25-
this.schema.dropTable(this.tableName);
17+
public async down() {
18+
this.schema.alterTable(this.tableName, (table) => {
19+
table.dropForeign("course_id"); // Revert changes
20+
table.string("course_id").references("courses.id").onDelete("CASCADE"); // Restore original behavior
21+
});
2622
}
2723
}

backend/package-lock.json

Lines changed: 45 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

backend/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@
7272
"hot-hook": "^0.2.6",
7373
"pino-pretty": "^11.2.2",
7474
"prettier": "^3.4.2",
75+
"ts-node": "^10.9.2",
7576
"ts-node-maintained": "^10.9.4",
7677
"typescript": "~5.5"
7778
},

0 commit comments

Comments
 (0)