Просмотр исходного кода

implement findOrCreateByTeamId

itizawa 5 лет назад
Родитель
Сommit
067a18246c

+ 4 - 2
packages/slackbot-proxy/src/controllers/slack.ts

@@ -68,9 +68,11 @@ export class SlackCtrl {
     res.send();
 
     console.log('body', body);
+    const teamId = body.team_id;
 
-    const order = new Order(body.team_id);
-    await this.orderRepository.save(order);
+    // TODO move to service
+    const order = await this.orderRepository.findOrCreateByTeamId(teamId);
+    console.log('order', order);
 
     return 'This action will be handled by bolt service.';
   }

+ 4 - 0
packages/slackbot-proxy/src/entities/order.ts

@@ -33,4 +33,8 @@ export class Order {
     this.teamId = teamId;
   }
 
+  isExpired():Error {
+    throw new Error('TODO GW-5555 implement this');
+  }
+
 }

+ 8 - 2
packages/slackbot-proxy/src/repositories/order.ts

@@ -7,8 +7,14 @@ import { Order } from '~/entities/order';
 @EntityRepository(Order)
 export class OrderRepository extends Repository<Order> {
 
-  isExpired():Error {
-    throw new Error('TODO GW-5555 implement this');
+  async findOrCreateByTeamId(teamId:string):Promise<Order> {
+    const order = await this.findOne({ teamId });
+
+    if (order == null) {
+      return this.save({ teamId });
+    }
+
+    return order;
   }
 
 }