Skip to content

Commit

Permalink
fix: repository 제거 및 슬랙 접속 오류 해결
Browse files Browse the repository at this point in the history
  • Loading branch information
INT31302 committed Jan 5, 2023
1 parent 54e18c3 commit 0a3b4d8
Show file tree
Hide file tree
Showing 13 changed files with 36 additions and 61 deletions.
2 changes: 1 addition & 1 deletion src/modules/database/database.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ const DatabaseModule = Module.forRootAsync({

return {
type: 'postgres',
entities: [__dirname + '/../modules/**/*.entity{.ts,.js}'],
autoLoadEntities: true,
namingStrategy: new SnakeNamingStrategy(),
synchronize: false,
//
Expand Down
7 changes: 4 additions & 3 deletions src/modules/holiday/holiday.service.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
import { Injectable, Logger } from '@nestjs/common';
import { UpdateHolidayDto } from './dto/update-holiday.dto';
import * as dayjs from 'dayjs';
import { Connection } from 'typeorm';
import { Connection, Repository } from 'typeorm';
import { lastValueFrom } from 'rxjs';
import { HttpService } from '@nestjs/axios';
import { HolidayType } from '@src/modules/holiday/holiday.type';
import { HolidayRepository } from '@src/modules/holiday/repository/holiday.repository';
import { InjectRepository } from '@nestjs/typeorm';
import { Holiday } from '@src/modules/holiday/entities/holiday.entity';

@Injectable()
export class HolidayService {
Expand All @@ -14,7 +15,7 @@ export class HolidayService {
constructor(
private readonly httpService: HttpService,
private readonly connection: Connection,
private readonly holidayRepository: HolidayRepository,
@InjectRepository(Holiday) private holidayRepository: Repository<Holiday>,
) {}

private async startTransaction() {
Expand Down
10 changes: 0 additions & 10 deletions src/modules/holiday/repository/holiday.repository.ts

This file was deleted.

1 change: 1 addition & 0 deletions src/modules/motivation/entities/motivation.entity.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ export class Motivation {
comment: '카테고리',
enum: CategoryType,
default: CategoryType.기타,
type: 'integer',
})
category: CategoryType;
}
6 changes: 3 additions & 3 deletions src/modules/motivation/motivation.module.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import { Module } from '@nestjs/common';
import { MotivationService } from './motivation.service';
import { TypeOrmModule } from '@nestjs/typeorm';
import { User } from '@src/modules/user/entities/user.entity';
import { Motivation } from '@src/modules/motivation/entities/motivation.entity';
import { HttpModule } from '@nestjs/axios';
import { Holiday } from '@src/modules/holiday/entities/holiday.entity';
import { SlackModule } from '@src/modules/slack/slack.module';
import { Motivation } from '@src/modules/motivation/entities/motivation.entity';
import { User } from '@src/modules/user/entities/user.entity';
import { Holiday } from '@src/modules/holiday/entities/holiday.entity';

@Module({
imports: [TypeOrmModule.forFeature([User, Motivation, Holiday]), HttpModule, SlackModule],
Expand Down
12 changes: 6 additions & 6 deletions src/modules/motivation/motivation.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,18 @@ import { Motivation } from '@src/modules/motivation/entities/motivation.entity';
import * as dayjs from 'dayjs';
import { CategoryType } from '@src/modules/motivation/movitation.type';
import { Cron } from '@nestjs/schedule';
import { UserRepository } from '@src/modules/user/repository/user.repository';
import { HolidayRepository } from '@src/modules/holiday/repository/holiday.repository';
import { MotivationRepository } from '@src/modules/motivation/repository/motivation.repository';
import { SlackInteractiveService } from '@src/modules/slack/slack.interactive.service';
import { InjectRepository } from '@nestjs/typeorm';
import { Repository } from 'typeorm';
import { Holiday } from '@src/modules/holiday/entities/holiday.entity';

@Injectable()
export class MotivationService {
private readonly logger: Logger = new Logger(this.constructor.name);
constructor(
private readonly userRepository: UserRepository,
private readonly motivationRepository: MotivationRepository,
private readonly holidayRepository: HolidayRepository,
@InjectRepository(User) private userRepository: Repository<User>,
@InjectRepository(Motivation) private motivationRepository: Repository<Motivation>,
@InjectRepository(Holiday) private holidayRepository: Repository<Holiday>,
private readonly slackInteractiveService: SlackInteractiveService,
) {}

Expand Down
10 changes: 0 additions & 10 deletions src/modules/motivation/repository/motivation.repository.ts

This file was deleted.

9 changes: 2 additions & 7 deletions src/modules/slack/slack.controller.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,18 +11,14 @@ import { SlackInteractiveService } from '@src/modules/slack/slack.interactive.se
import { SlackEventService } from '@src/modules/slack/slack.event.service';
import { ACTION_ID } from '@src/modules/slack/slack.constants';
import { ChatPostMessageResponse, ViewsPublishResponse } from '@slack/web-api';
import { NotionService } from '@lib/notion';
import { NotionType } from '@lib/notion/notion.type';
import { isNil } from '@nestjs/common/utils/shared.utils';

@Controller('slack')
@Controller('slack-event')
@SlackEventListener()
@SlackInteractivityListener()
export class SlackController {
constructor(
private readonly slackInteractiveService: SlackInteractiveService,
private readonly slackEventService: SlackEventService,
private readonly notionService: NotionService,
) {}

// event-api
Expand All @@ -31,8 +27,7 @@ export class SlackController {
if (this.slackEventService.isDMChannel(event)) return;
if (this.slackEventService.isBot(event)) return;
if (event.text) {
const message = await this.notionService.searchQueryByName(event.text, NotionType.EASTER_EGG);
await this.slackEventService.sendEasterEgg(event, message);
await this.slackEventService.sendEasterEgg(event);
}
return this.slackInteractiveService.postMessage(
event.channel,
Expand Down
15 changes: 9 additions & 6 deletions src/modules/slack/slack.event.service.ts
Original file line number Diff line number Diff line change
@@ -1,20 +1,22 @@
import { Injectable, Logger } from '@nestjs/common';
import { NotionService } from '@lib/notion';
import { BotProfile, SlackEventDto } from '@src/modules/slack/dto/slack-event.dto';
import { SlackInteractiveService } from '@src/modules/slack/slack.interactive.service';
import { UserRepository } from '@src/modules/user/repository/user.repository';
import { ChatPostMessageResponse, UsersInfoResponse, ViewsPublishResponse } from '@slack/web-api';
import { User } from '@src/modules/user/entities/user.entity';
import { InjectSlackClient, SlackClient } from 'nestjs-slack-listener';
import { NotionType } from '@lib/notion/notion.type';
import { NotionService } from '@lib/notion';
import { InjectRepository } from '@nestjs/typeorm';
import { Repository } from 'typeorm';

@Injectable()
export class SlackEventService {
private readonly logger: Logger = new Logger(this.constructor.name);

constructor(
private readonly userRepository: UserRepository,
private readonly notionService: NotionService,
@InjectRepository(User) private userRepository: Repository<User>,
private readonly slackInteractiveService: SlackInteractiveService,
private readonly notionService: NotionService,
@InjectSlackClient()
private readonly slack: SlackClient,
) {}
Expand Down Expand Up @@ -74,9 +76,10 @@ export class SlackEventService {
/**
* 이스터에그 메시지 발송
* @param event
* @param message
*/
async sendEasterEgg(event: SlackEventDto, message: string): Promise<ChatPostMessageResponse> {
async sendEasterEgg(event: SlackEventDto): Promise<ChatPostMessageResponse> {
let message = await this.notionService.searchQueryByName(event.text, NotionType.EASTER_EGG);

const user = await this.userRepository.findOneBy({ id: event.user });
message = message.replace(/\${name}/gi, user.name);
// if (user.jerry)
Expand Down
5 changes: 3 additions & 2 deletions src/modules/slack/slack.interactive.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,15 @@ import { Cron, CronExpression } from '@nestjs/schedule';
import { NotionService } from '@lib/notion';
import { InjectSlackClient, SlackClient } from 'nestjs-slack-listener';
import { ChatPostMessageResponse, ViewsPublishArguments, ViewsPublishResponse } from '@slack/web-api';
import { UserRepository } from '@src/modules/user/repository/user.repository';
import { User } from '@src/modules/user/entities/user.entity';
import { InjectRepository } from '@nestjs/typeorm';
import { Repository } from 'typeorm';

@Injectable()
export class SlackInteractiveService {
private readonly loggger: Logger = new Logger(this.constructor.name);
constructor(
private readonly userRepository: UserRepository,
@InjectRepository(User) private userRepository: Repository<User>,
private readonly notionService: NotionService,
@InjectSlackClient()
private readonly slack: SlackClient,
Expand Down
5 changes: 4 additions & 1 deletion src/modules/slack/slack.module.ts
Original file line number Diff line number Diff line change
@@ -1,17 +1,20 @@
import { Module } from '@nestjs/common';
import { SlackController } from './slack.controller';
import { TypeOrmModule } from '@nestjs/typeorm';
import { User } from '@src/modules/user/entities/user.entity';
import { NotionModule } from '@lib/notion';
import { SlackInteractiveService } from '@src/modules/slack/slack.interactive.service';
import { SlackEventService } from '@src/modules/slack/slack.event.service';
import { ConfigModule } from '@nestjs/config';
import { User } from '@src/modules/user/entities/user.entity';

@Module({
imports: [
ConfigModule.forRoot(),
TypeOrmModule.forFeature([User]),
NotionModule.register({ notionToken: process.env.NOTION_TOKEN, easterEggDataBaseId: process.env.EASTER_EGG_DB }),
],
controllers: [SlackController],
providers: [SlackInteractiveService, SlackEventService],
exports: [SlackEventService, SlackInteractiveService],
})
export class SlackModule {}
10 changes: 0 additions & 10 deletions src/modules/user/repository/user.repository.ts

This file was deleted.

5 changes: 3 additions & 2 deletions src/modules/user/user.service.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
import { Injectable, Logger } from '@nestjs/common';
import * as dayjs from 'dayjs';
import { User } from '@src/modules/user/entities/user.entity';
import { UserRepository } from '@src/modules/user/repository/user.repository';
import { InjectRepository } from '@nestjs/typeorm';
import { Repository } from 'typeorm';

@Injectable()
export class UserService {
private readonly logger: Logger = new Logger(this.constructor.name);

constructor(private readonly userRepository: UserRepository) {}
constructor(@InjectRepository(User) private userRepository: Repository<User>) {}

/**
* 사용자 정보를 생성합니다.
Expand Down

0 comments on commit 0a3b4d8

Please sign in to comment.