11import {
2+ calculateRushedPercentage ,
23 ClashClientService ,
34 HERO_EQUIPMENT ,
45 HERO_PETS ,
56 HOME_HEROES ,
67 HOME_TROOPS ,
8+ remainingHeroUpgrades ,
9+ remainingLabUpgrades ,
710 ROLES_MAP ,
811} from '@app/clash-client' ;
912import { QueueTypes } from '@app/constants' ;
10- import { CreateGoogleSheet , GoogleSheetService } from '@app/google-sheet' ;
13+ import { CreateGoogleSheet } from '@app/google-sheet' ;
1114import { InjectQueue } from '@nestjs/bull' ;
1215import { Inject , Injectable } from '@nestjs/common' ;
1316import { Queue } from 'bull' ;
1417import { sum } from 'lodash' ;
1518import { Db } from 'mongodb' ;
1619import { Collections , MONGODB_TOKEN , PlayerLinksEntity } from '../db' ;
1720import { ExportMembersInput , ExportSheetInputDto } from './dto' ;
21+ import { ReusableSheetService , SheetType } from './services/reusable-sheet.service' ;
1822
1923const ALLOWED_ACHIEVEMENTS = [
2024 'Gold Grab' ,
@@ -37,7 +41,7 @@ export class ExportsMembersService {
3741 @InjectQueue ( QueueTypes . EXPORT ) private queue : Queue < ExportSheetInputDto > ,
3842 @Inject ( MONGODB_TOKEN ) private db : Db ,
3943 private clashClientService : ClashClientService ,
40- private googleSheetService : GoogleSheetService ,
44+ private reusableSheetService : ReusableSheetService ,
4145 ) { }
4246
4347 async exportClanMembers ( input : ExportMembersInput ) {
@@ -133,6 +137,10 @@ export class ExportsMembersService {
133137 heroes : HOME_HEROES . map ( ( name ) => ( { name, level : heroes [ name ] || 0 } ) ) ,
134138 equipment : HERO_EQUIPMENT . map ( ( name ) => ( { name, level : equipment [ name ] || 0 } ) ) ,
135139
140+ rushedPercentage : Number ( calculateRushedPercentage ( player ) ) ,
141+ remainingHeroUpgradesPercentage : Number ( remainingHeroUpgrades ( player ) ) ,
142+ remainingLabUpgradesPercentage : Number ( remainingLabUpgrades ( player ) ) ,
143+
136144 userId : linksMap [ player . tag ] ?. userId ,
137145 username : linksMap [ player . tag ] ?. username ,
138146 displayName : linksMap [ player . tag ] ?. displayName ,
@@ -176,12 +184,9 @@ export class ExportsMembersService {
176184 m . leagueTier ,
177185 m . warPreference ,
178186 m . townHallLevel ,
179- 0 ,
180- 0 ,
181- 0 ,
182- // m.rushed,
183- // m.labRem,
184- // m.heroRem,
187+ m . rushedPercentage ,
188+ m . remainingLabUpgradesPercentage ,
189+ m . remainingHeroUpgradesPercentage ,
185190 ...m . heroes . map ( ( h ) => h . level ) ,
186191 ...m . pets . map ( ( h ) => h . level ) ,
187192 ...m . achievements . map ( ( v ) => v . value ) ,
@@ -201,8 +206,7 @@ export class ExportsMembersService {
201206 m . name ,
202207 m . tag ,
203208 m . townHallLevel ,
204- // m.rushed,
205- 0 ,
209+ m . rushedPercentage ,
206210 ...m . troops . map ( ( h ) => h . level ) ,
207211 ] ) ,
208212 } ,
@@ -223,7 +227,14 @@ export class ExportsMembersService {
223227 } ,
224228 ] ;
225229
226- return await this . googleSheetService . createGoogleSheet ( 'Clan Members' , sheets ) ;
230+ return this . reusableSheetService . createOrUpdateSheet ( {
231+ clanTags : input . clanTags ,
232+ sheets,
233+ guildId : input . guildId ,
234+ label : 'Clan Members' ,
235+ scheduled : input . scheduled ,
236+ sheetType : SheetType . CLAN_MEMBERS ,
237+ } ) ;
227238 }
228239
229240 private get links ( ) {
@@ -245,6 +256,10 @@ interface MembersChunk {
245256 warPreference : string ;
246257 townHallLevel : number ;
247258
259+ rushedPercentage : number ;
260+ remainingHeroUpgradesPercentage : number ;
261+ remainingLabUpgradesPercentage : number ;
262+
248263 userId : string ;
249264 username : string ;
250265 displayName : string ;
0 commit comments