Skip to content

Commit 8734dfa

Browse files
authored
871-refactor: Refactor youtube api (#872)
* refactor: 871 - move youtube api to separate domain * chore: 871 - remove redundant env variable type * refactor: 871 - move business logic to store * fix: 871 - function name typo * chore: 871 - change to not log in prod
1 parent a68e768 commit 8734dfa

26 files changed

+209
-211
lines changed

.env.example

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
1-
API_BASE_URL=https://cdn.rs.school
2-
YOUTUBE_API_KEY=YOUTUBE_API_KEY
1+
NEXT_PUBLIC_API_BASE_URL=https://cdn.rs.school
32
LOG_QUERY=true
43

4+
# YouTube
5+
NEXT_PUBLIC_YOUTUBE_API_BASE_URL=https://www.googleapis.com/youtube/v3
6+
NEXT_PUBLIC_YOUTUBE_API_KEY=YOUTUBE_API_KEY
7+
58
# Contentful
69
CONTENTFUL_SPACE_ID=CONTENTFUL_SPACE_ID
710
CONTENTFUL_MANAGEMENT_TOKEN=CONTENTFUL_MANAGEMENT_TOKEN

.github/workflows/main.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,9 @@ on:
88

99
env:
1010
NODE_VERSION: 20.x
11-
API_BASE_URL: ${{ secrets.API_BASE_URL }}
12-
YOUTUBE_API_KEY: ${{ secrets.YOUTUBE_API_KEY_DEVELOPMENT }}
11+
NEXT_PUBLIC_API_BASE_URL: ${{ secrets.API_BASE_URL }}
12+
NEXT_PUBLIC_YOUTUBE_API_BASE_URL: ${{ secrets.YOUTUBE_API_BASE_URL }}
13+
NEXT_PUBLIC_YOUTUBE_API_KEY: ${{ secrets.YOUTUBE_API_KEY_DEVELOPMENT }}
1314

1415
jobs:
1516
ci:

.github/workflows/preview-create.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,9 @@ env:
1515
AWS_ACCESS_KEY_ID: ${{ secrets.DEPLOY_AWS_ACCESS_KEY_ID }}
1616
AWS_SECRET_ACCESS_KEY: ${{ secrets.DEPLOY_AWS_SECRET_ACCESS_KEY }}
1717
AWS_REGION: 'eu-central-1'
18-
API_BASE_URL: ${{ secrets.API_BASE_URL }}
19-
YOUTUBE_API_KEY: ${{ secrets.YOUTUBE_API_KEY_DEVELOPMENT }}
18+
NEXT_PUBLIC_API_BASE_URL: ${{ secrets.API_BASE_URL }}
19+
NEXT_PUBLIC_YOUTUBE_API_BASE_URL: ${{ secrets.YOUTUBE_API_BASE_URL }}
20+
NEXT_PUBLIC_YOUTUBE_API_KEY: ${{ secrets.YOUTUBE_API_KEY_DEVELOPMENT }}
2021

2122
jobs:
2223
build-rs-school:

.github/workflows/production.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,9 @@ env:
2020
AWS_ACCESS_KEY_ID: ${{ secrets.DEPLOY_AWS_ACCESS_KEY_ID }}
2121
AWS_SECRET_ACCESS_KEY: ${{ secrets.DEPLOY_AWS_SECRET_ACCESS_KEY }}
2222
AWS_REGION: 'eu-central-1'
23-
API_BASE_URL: ${{ secrets.API_BASE_URL }}
24-
YOUTUBE_API_KEY: ${{ secrets.YOUTUBE_API_KEY_PRODUCTION }}
23+
NEXT_PUBLIC_API_BASE_URL: ${{ secrets.API_BASE_URL }}
24+
NEXT_PUBLIC_YOUTUBE_API_BASE_URL: ${{ secrets.YOUTUBE_API_BASE_URL }}
25+
NEXT_PUBLIC_YOUTUBE_API_KEY: ${{ secrets.YOUTUBE_API_KEY_PRODUCTION }}
2526

2627
jobs:
2728
rs-school:

.github/workflows/visual-testing-on-comment.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,9 @@ on:
77

88
env:
99
NODE_VERSION: 20.x
10-
API_BASE_URL: ${{ secrets.API_BASE_URL }}
11-
YOUTUBE_API_KEY: ${{ secrets.YOUTUBE_API_KEY_DEVELOPMENT }}
10+
NEXT_PUBLIC_API_BASE_URL: ${{ secrets.API_BASE_URL }}
11+
NEXT_PUBLIC_YOUTUBE_API_BASE_URL: ${{ secrets.YOUTUBE_API_BASE_URL }}
12+
NEXT_PUBLIC_YOUTUBE_API_KEY: ${{ secrets.YOUTUBE_API_KEY_DEVELOPMENT }}
1213

1314
jobs:
1415
run-visial-testing:

.github/workflows/visual-testing-on-push.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,9 @@ on:
66

77
env:
88
NODE_VERSION: 20.x
9-
API_BASE_URL: ${{ secrets.API_BASE_URL }}
10-
YOUTUBE_API_KEY: ${{ secrets.YOUTUBE_API_KEY_DEVELOPMENT }}
9+
NEXT_PUBLIC_API_BASE_URL: ${{ secrets.API_BASE_URL }}
10+
NEXT_PUBLIC_YOUTUBE_API_BASE_URL: ${{ secrets.YOUTUBE_API_BASE_URL }}
11+
NEXT_PUBLIC_YOUTUBE_API_KEY: ${{ secrets.YOUTUBE_API_KEY_DEVELOPMENT }}
1112

1213
jobs:
1314
visial-testing:

env.d.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
declare namespace NodeJS {
22
interface ProcessEnv {
3-
YOUTUBE_API_KEY: string;
4-
API_BASE_URL: string;
3+
API_URL: string;
4+
NEXT_PUBLIC_API_BASE_URL: string;
5+
NEXT_PUBLIC_YOUTUBE_API_BASE_URL: string;
6+
NEXT_PUBLIC_YOUTUBE_API_KEY: string;
57
LOG_QUERY: string;
68
}
79
}

package-lock.json

Lines changed: 24 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,8 @@
4646
"remark-rehype": "^11.1.2",
4747
"remark-remove-comments": "^1.1.1",
4848
"remark-toc": "^9.0.0",
49-
"swiper": "^11.2.6"
49+
"swiper": "^11.2.6",
50+
"swr": "^2.3.3"
5051
},
5152
"devDependencies": {
5253
"@eslint/js": "^9.25.1",

src/core/api/app-api.ts

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { CourseApi } from '@/entities/course/api/course-api';
2+
import { MentorApi } from '@/entities/mentor/api/mentor-api';
23
import { TrainerApi } from '@/entities/trainer/api/trainer-api';
34
import { ApiBaseClass } from '@/shared/api/api-base-class';
45
import { ApiServices } from '@/shared/types';
@@ -8,11 +9,19 @@ export class Api {
89

910
public readonly trainer: TrainerApi;
1011
public readonly course: CourseApi;
12+
public readonly mentor: MentorApi;
1113

12-
constructor(private readonly baseURI: string) {
13-
this.services = { rest: new ApiBaseClass(this.baseURI) };
14+
constructor(
15+
private readonly baseURI: string,
16+
private readonly youtubeBaseURI: string,
17+
) {
18+
this.services = {
19+
rest: new ApiBaseClass(this.baseURI),
20+
youtube: new ApiBaseClass(this.youtubeBaseURI),
21+
};
1422

1523
this.trainer = new TrainerApi(this.services);
1624
this.course = new CourseApi(this.services);
25+
this.mentor = new MentorApi(this.services);
1726
}
1827
}

0 commit comments

Comments
 (0)