diff --git a/src/adapters/contentpagesservicelocator.ts b/src/adapters/contentpagesservicelocator.ts new file mode 100644 index 0000000..21ceec1 --- /dev/null +++ b/src/adapters/contentpagesservicelocator.ts @@ -0,0 +1,5 @@ +import { ContentPagesDto } from "src/contentPages/dto/contentPages.dto"; + +export interface IServicelocator { + +} diff --git a/src/adapters/esamwad/contentPages.adapter.ts b/src/adapters/esamwad/contentPages.adapter.ts new file mode 100644 index 0000000..792d108 --- /dev/null +++ b/src/adapters/esamwad/contentPages.adapter.ts @@ -0,0 +1,12 @@ +import { Injectable } from "@nestjs/common"; +import { HttpService } from "@nestjs/axios"; +import { IServicelocator } from "../contentpagesservicelocator"; + +export const ESamwadContentPagesToken = "ESamwadContentPages"; + +@Injectable() +export class ContentPagesEsamwadService implements IServicelocator { + constructor(private httpService: HttpService) { } + baseURL = process.env.HASURAURL; + adminSecret = process.env.ADMINSECRET; +} \ No newline at end of file diff --git a/src/app.module.ts b/src/app.module.ts index 7e774b9..201e085 100644 --- a/src/app.module.ts +++ b/src/app.module.ts @@ -24,6 +24,7 @@ import { AssessmentSetModule } from "./assessmentset/assessmentset.module"; import { InAppNotificationModule } from "./inAppNotification/inAppNotification.module"; import { MentorTrackingModule } from "./mentorTracking/mentorTracking.module"; import { MonitorTrackingModule } from "./monitorTracking/monitorTracking.module"; +import { ContentPagesModule } from './contentPages/contentPages.module'; @Module({ imports: [ ConfigModule.forRoot(), @@ -51,8 +52,9 @@ import { MonitorTrackingModule } from "./monitorTracking/monitorTracking.module" InAppNotificationModule, MentorTrackingModule, MonitorTrackingModule, + ContentPagesModule, ], controllers: [AppController], providers: [AppService], }) -export class AppModule {} +export class AppModule { } diff --git a/src/contentPages/content-pages.controller.spec.ts b/src/contentPages/content-pages.controller.spec.ts new file mode 100644 index 0000000..df82645 --- /dev/null +++ b/src/contentPages/content-pages.controller.spec.ts @@ -0,0 +1,18 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { ContentPagesController } from './contentPages.controller'; + +describe('ContentPagesController', () => { + let controller: ContentPagesController; + + beforeEach(async () => { + const module: TestingModule = await Test.createTestingModule({ + controllers: [ContentPagesController], + }).compile(); + + controller = module.get(ContentPagesController); + }); + + it('should be defined', () => { + expect(controller).toBeDefined(); + }); +}); diff --git a/src/contentPages/contentPages.controller.ts b/src/contentPages/contentPages.controller.ts new file mode 100644 index 0000000..1586c4c --- /dev/null +++ b/src/contentPages/contentPages.controller.ts @@ -0,0 +1,18 @@ +import { + Controller, + Inject, +} from "@nestjs/common"; +import { IServicelocator } from "src/adapters/contentpagesservicelocator"; +import { + ContentPagesEsamwadService, + ESamwadContentPagesToken, +} from "src/adapters/esamwad/contentPages.adapter"; + +@Controller('contentPages') +export class ContentPagesController { + constructor(private hasuraService: ContentPagesEsamwadService, + @Inject(ESamwadContentPagesToken) private eSamwadProvider: IServicelocator) { } + + //api calls + +} diff --git a/src/contentPages/contentPages.module.ts b/src/contentPages/contentPages.module.ts new file mode 100644 index 0000000..fc6250e --- /dev/null +++ b/src/contentPages/contentPages.module.ts @@ -0,0 +1,27 @@ +import { CacheModule, Module } from "@nestjs/common"; +import { HttpModule } from "@nestjs/axios"; +import { ScheduleModule } from "@nestjs/schedule"; +import { ContentPagesController } from './contentPages.controller'; +import { + ContentPagesEsamwadService, + ESamwadContentPagesToken, +} from "src/adapters/esamwad/contentPages.adapter"; + +const ttl = process.env.TTL as never; +@Module({ + imports: [ + HttpModule, + CacheModule.register({ + ttl: ttl, + }), + ScheduleModule.forRoot(), + ], + providers: [ + ContentPagesEsamwadService, { + provide: ESamwadContentPagesToken, + useClass: ContentPagesEsamwadService + } + ], + controllers: [ContentPagesController], +}) +export class ContentPagesModule { } diff --git a/src/contentPages/dto/contentPages.dto.ts b/src/contentPages/dto/contentPages.dto.ts new file mode 100644 index 0000000..6d9c1c6 --- /dev/null +++ b/src/contentPages/dto/contentPages.dto.ts @@ -0,0 +1 @@ +export class ContentPagesDto { } \ No newline at end of file