import { getRepository } from 'typeorm' import { MarketplaceStore } from '../../../../entities' import { Lazada } from '../../../../controllers/lazada' import { STORE_STATUS } from '../../../constants' import { config } from '@things-factory/env' const lazadaConfig = config.get('marketplaceIntegrationLazada', {}) const { appKey, appSecret } = lazadaConfig export const generateLazadaAccessToken = { async generateLazadaAccessToken(_: any, { id, code }, context: any) { const repository = getRepository(MarketplaceStore) const marketplaceStore: any = await repository.findOne({ where: { domain: context.state.domain, id } }) const client = new Lazada(marketplaceStore.countryCode, appKey, appSecret) const generated = await client.generateAccessToken({ code }) const { country, access_token, refresh_token, country_user_info } = generated client.accessToken = access_token const store = country_user_info.find(info => info.country == country) var patch = { accessToken: access_token, refreshToken: refresh_token, accessInfo: JSON.stringify(generated, null, 2), storeId: store?.seller_id, countryCode: country, status: STORE_STATUS.ACTIVE } return await repository.save({ ...marketplaceStore, ...patch, updater: context.state.user }) } }