32 lines
1.0 KiB
TypeScript
32 lines
1.0 KiB
TypeScript
import { Injectable } from '@nestjs/common';
|
|
import { EventBus } from '@nestjs/cqrs';
|
|
import { mappingMidtransTransaction } from '../../domain/usecases/helpers/mapping-transaction.helper';
|
|
import { Snap } from 'midtrans-client';
|
|
import { MidtransStatus } from '../../domain/entities/midtrans-callback.event';
|
|
|
|
@Injectable()
|
|
export class MidtransService {
|
|
constructor(private eventBus: EventBus) {}
|
|
|
|
get midtransInstance() {
|
|
return new Snap({
|
|
isProduction: false,
|
|
serverKey: process.env.MIDTRANS_SERVER_KEY,
|
|
clientKey: process.env.MIDTRANS_CLIENT_KEY,
|
|
});
|
|
}
|
|
|
|
async getStatus(orderId: string): Promise<any> {
|
|
return await this.midtransInstance.transaction.status(orderId);
|
|
}
|
|
|
|
async changeStatus(orderId: string, action: MidtransStatus): Promise<any> {
|
|
return await this.midtransInstance.transaction[action](orderId);
|
|
}
|
|
|
|
async create(body): Promise<any> {
|
|
const data = mappingMidtransTransaction(body);
|
|
return await this.midtransInstance.createTransaction(data);
|
|
}
|
|
}
|