From 1e7b7b00ffcfaef763bc6b6a34dfcf59d7f52d8a Mon Sep 17 00:00:00 2001 From: Dylan W <119717655+dylanwz@users.noreply.github.com> Date: Thu, 13 Jun 2024 17:19:20 +1000 Subject: [PATCH] merge linting gh actions (#303) chore: UNI-292 linting GitHub actions (#295) * add ci for migration * add 'npm run format' command to all three packages * remove all instances of any type being used in migration * remove logger in migration service Co-authored-by: Adrian Balbalosa <87012111+adrianbalbs@users.noreply.github.com> --- .github/workflows/ci.yml | 13 ++++++++++++ backend/package.json | 1 + frontend/package.json | 3 ++- migration/package.json | 1 + migration/src/migrate/index.ts | 12 +++++------ migration/src/migrate/repository.ts | 22 +++++++++----------- migration/src/migrate/service.ts | 32 ++++++++++++++++------------- 7 files changed, 51 insertions(+), 33 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 45b042e63..600665ff7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -39,3 +39,16 @@ jobs: - run: npm ci - run: npm run lint - run: npm run build + migration-ci: + runs-on: ubuntu-latest + defaults: + run: + working-directory: ./migration + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v3 + with: + node-version: 18 + - run: npm ci + - run: npm run lint + - run: npm run build diff --git a/backend/package.json b/backend/package.json index ae85b7404..97ee24fc5 100644 --- a/backend/package.json +++ b/backend/package.json @@ -4,6 +4,7 @@ "main": "index.js", "scripts": { "lint": "eslint -c .eslintrc.js \"src/**/*.{js,ts,tsx}\" --quiet --fix", + "format": "prettier '**/*.ts' --write", "build": "tsc", "start": "npx prisma migrate deploy && node dist/src/index.js", "dev": "NODE_ENV=dev tsx src/index.ts", diff --git a/frontend/package.json b/frontend/package.json index 0f3dfcfed..48b0bef7d 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -6,7 +6,8 @@ "dev": "next dev", "build": "next build", "start": "next start", - "lint": "next lint" + "lint": "next lint", + "format": "prettier '**/*.ts{,x}' --write" }, "dependencies": { "@headlessui/react": "^1.7.14", diff --git a/migration/package.json b/migration/package.json index 8e7703374..15e1dab24 100644 --- a/migration/package.json +++ b/migration/package.json @@ -5,6 +5,7 @@ "scripts": { "build": "tsc", "lint": "eslint -c eslint.config.js \"src/**/*.{js,ts,tsx}\" --quiet --fix", + "format": "prettier '**/*.ts' --write", "start": "node dist/src/index.js", "dev": "NODE_ENV=dev tsx watch src/index.ts", "dev:one": "NODE_ENV=dev tsx src/index.ts" diff --git a/migration/src/migrate/index.ts b/migration/src/migrate/index.ts index a1d06556b..68d57ea6a 100644 --- a/migration/src/migrate/index.ts +++ b/migration/src/migrate/index.ts @@ -26,7 +26,7 @@ export default class MigrationController { const result = await this.migrationService.migrateReviews(); this.logger.info(`Responding to client in POST /migrate/reviews`); return res.status(200).json(result); - } catch (err: any) { + } catch (err) { this.logger.warn( `An error occurred when trying to POST /migrate/reviews ${err}`, ); @@ -48,7 +48,7 @@ export default class MigrationController { const result = await this.migrationService.updateReviews(); this.logger.info(`Responding to client in PUT /migrate/reviews`); return res.status(200).json(result); - } catch (err: any) { + } catch (err) { this.logger.warn( `An error occurred when trying to PUT /migrate/reviews ${err}`, ); @@ -70,7 +70,7 @@ export default class MigrationController { const result = await this.migrationService.migrateCourses(); this.logger.info(`Responding to client in POST /migrate/courses`); return res.status(200).json(result); - } catch (err: any) { + } catch (err) { this.logger.warn( `An error occurred when trying to POST /migrate/courses ${err}`, ); @@ -92,7 +92,7 @@ export default class MigrationController { const result = await this.migrationService.updateCourses(); this.logger.info(`Responding to client in PUT /migrate/courses`); return res.status(200).json(result); - } catch (err: any) { + } catch (err) { this.logger.warn( `An error occurred when trying to PUT /migrate/courses ${err}`, ); @@ -119,7 +119,7 @@ export default class MigrationController { const result = await this.migrationService.updateUser(zid); this.logger.info(`Responding to client in PUT /users/${zid}`); return res.status(200).json(result); - } catch (err: any) { + } catch (err) { this.logger.warn( `An error occurred when trying to PUT /users/${zid}: ${err}`, ); @@ -141,7 +141,7 @@ export default class MigrationController { const result = await this.migrationService.flush(); this.logger.info(`Responding to client in DELETE /migrate/flush`); return res.status(200).json(result); - } catch (err: any) { + } catch (err) { this.logger.warn( `An error occurred when trying to DELETE /migrate/flush ${err}`, ); diff --git a/migration/src/migrate/repository.ts b/migration/src/migrate/repository.ts index 139a2fb50..cb93b0d49 100644 --- a/migration/src/migrate/repository.ts +++ b/migration/src/migrate/repository.ts @@ -24,25 +24,23 @@ export default class MigrationRepository { } async getReviews(): Promise { - const reviews: any = await this.manager.query(` - select * from unilectives.reviews - `); - return reviews.map((r: any) => ({ - reviewId: r.review_id, + const reviews = await this.manager.getRepository(ReviewEntity).find(); + return reviews.map((r: ReviewEntity) => ({ + reviewId: r.reviewId, zid: r.zid, - courseCode: r.course_code, - authorName: r.author_name, + courseCode: r.courseCode, + authorName: r.authorName, title: r.title, description: r.description, - grade: r.grade, - termTaken: r.term_taken, - createdTimestamp: r.created_timestamp, - updatedTimestamp: r.updated_timestamp, + grade: r.grade ? r.grade.toString() : null, + termTaken: r.termTaken, + createdTimestamp: r.createdTimestamp.toString(), + updatedTimestamp: r.updatedTimestamp.toString(), upvotes: r.upvotes, manageability: r.manageability, usefulness: r.usefulness, enjoyability: r.enjoyability, - overallRating: r.overall_rating, + overallRating: r.overallRating, })); } diff --git a/migration/src/migrate/service.ts b/migration/src/migrate/service.ts index 4415e5d67..e52348210 100644 --- a/migration/src/migrate/service.ts +++ b/migration/src/migrate/service.ts @@ -13,6 +13,10 @@ export default class MigrationService { readonly migrationRepository: MigrationRepository, ) {} + inferError(err: unknown) { + return err instanceof Error ? err.message : "An unknown error occured"; + } + async migrateReviews(): Promise { try { const oldReviews = await this.fetcher.getProdReviews(); @@ -40,10 +44,10 @@ export default class MigrationService { status: "SUCCESS", message: "Successfully migrated reviews", }; - } catch (err: any) { + } catch (err) { return { status: "FAILURE", - message: err.message, + message: this.inferError(err), }; } } @@ -75,10 +79,10 @@ export default class MigrationService { status: "SUCCESS", message: "Successfully migrated reviews", }; - } catch (err: any) { + } catch (err) { return { status: "FAILURE", - message: err.message, + message: this.inferError(err), }; } } @@ -121,10 +125,10 @@ export default class MigrationService { status: "SUCCESS", message: "Successfully updated reviews", }; - } catch (err: any) { + } catch (err) { return { status: "FAILURE", - message: err.message, + message: this.inferError(err), }; } } @@ -138,10 +142,10 @@ export default class MigrationService { status: "SUCCESS", message: "Successfully migrated courses", }; - } catch (err: any) { + } catch (err) { return { status: "FAILURE", - message: err.message, + message: this.inferError(err), }; } } @@ -155,10 +159,10 @@ export default class MigrationService { status: "SUCCESS", message: "Successfully updated courses", }; - } catch (err: any) { + } catch (err) { return { status: "FAILURE", - message: err.message, + message: this.inferError(err), }; } } @@ -170,10 +174,10 @@ export default class MigrationService { status: "SUCCESS", message: "Successfully updated user to admin" + ` ${zid}`, }; - } catch (err: any) { + } catch (err) { return { status: "FAILURE", - message: err.message, + message: this.inferError(err), }; } } @@ -185,10 +189,10 @@ export default class MigrationService { status: "SUCCESS", message: "Successfully flushed database", }; - } catch (err: any) { + } catch (err) { return { status: "FAILURE", - message: err.message, + message: this.inferError(err), }; } }