@vertikalx/vtx-backend-client 3.0.0-dev.27 → 3.0.0-dev.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +0 -0
- package/package.json +1 -1
- package/src/api/vtx-base-api.d.ts +40 -1
- package/src/api/vtx-base-api.js +384 -0
- package/src/api/vtx-base-api.js.map +1 -1
- package/src/client/schema.d.ts +484 -0
- package/src/client/schema.js +140 -1
- package/src/client/schema.js.map +1 -1
- package/src/client/types.d.ts +230 -0
- package/src/client/types.js +757 -162
- package/src/client/types.js.map +1 -1
- package/tsconfig.lib.tsbuildinfo +1 -1
package/LICENSE.md
CHANGED
|
File without changes
|
package/package.json
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { User, AddValuesResponse, UserToken, UserWithToken, Athlete, RegisterAthleteDto, Brand, CreateBrandDto, BrandGenqlSelection, AWSS3UploadUrl, AWSS3GetUploadDto, CreateTenantInput, Tenant, TenantWithUserLogin, RegisterUserToDomainFromEmailInput, DecodedToken, Sponsorship, SponsorshipGenqlSelection, CreateSponsorshipDto, SponsorAthleteInvitation, InviteAthletesDto, RegisterUserDto, VerificationCode, VerifyCodeDto, FindSponsorAthleteInvitationDto, FindVtxUserDto, City, SportLevel, Sport, UserImages, EditValueResponse, CreateAthleteCompetitionDto, AthleteCompetition, GetSportEventsDto, SportsEvent, CreateSportEventDto, UpdateSportEventDto, GetAthleteCompetitionsDto, AthleteMembership, AthleteMembershipGenqlSelection, MembershipOrganizationReferenceGenqlSelection, MembershipOrganizationReference, CreateMembershipOrganizationDto, CreateAthleteMembershipDto, DeleteSingleValueDto, DeleteSingleValueResponse, FundRaisingCampaign, CreateFundingCampaignDto, FundRaisingCampaignGenqlSelection, AthleteQueryDto, AthleteQueryResponse, StripeSessionGenqlSelection, CreateStripeAccountDto, StripeSession, StripeAccountReferenceGenqlSelection, StripeAccountReference, StripeCheckoutSessionGenqlSelection, StripeCheckoutSession, DonationCheckoutDto, GetDatabaseFileDto, TextDatabaseFileGenqlSelection, TextDatabaseFile, StripeQueryDto, StripeObject, SetFundingStatusDto, EditPictureResponse, UploadAlbumsPicturesDto, UpdateUserSuspendedStatusDto, EditPictureDto, Album, State, Country, AWSS3DeleteUseTypeKeyDto, AthleteIntegrationReference, AWSS3CallResult, SetCompetitionResultDto, AthleteCompetitionResult, CodeVerificationResponse, resetPasswordDto, DeleteValuesDto, existValueDto, ExistValueResponse, Receipt, ReceiptUrl, GetReceiptDto, DeleteValuesResponse, BudgetData, AddCompetitionBudgetDto, EditCompetitionBudgetDto, EditCampaignBudgetDto, SetCurrentCampaignDto, GetAthleteCampaignsDto, UpdateFundingCampaignDto, EditDisplayIndexDto, MergeEventsResponse, MergeSportsEventsDto, BudgetConcept, BudgetItemUnit, CompetitionDeleteVerificationResponse, RegisterMemberDto, Member, Donation, DonationGenqlSelection, GetHistoricalScoresDto, HistoricalScore, GetMyHistoricalScoresDto, HistoricalScoresPeriod, GetTransactionDetailsDto, TransactionDetails, TransactionDetailsGenqlSelection, AdminUserView, AdminTransactionView, PaginatedTransactions, TransactionQueryDto, PaginatedUsers, UserQueryDto, EventQueryDto, PaginatedSports, SportQueryDto, StripeBalance, StripeBalanceGenqlSelection, DeleteVtxUserDto, DeleteVtxUserResponse, ForceScoreRefreshResponse, Offer, OfferGenqlSelection, CreateOfferDto, Sponsor, SponsorGenqlSelection, CreateSponsorDto, PaginatedBrands, BrandQueryDto, PaginatedEvents, SponsorQueryDto, PaginatedSponsors, OfferQueryDto, PaginatedOffers, PaginatedOffersWithEligibility, UploadResult, LeaderboardResponse, UserRank, LeaderboardQueryDto, UserRankQueryDto } from '../client';
|
|
1
|
+
import { User, AddValuesResponse, UserToken, UserWithToken, Athlete, RegisterAthleteDto, Brand, CreateBrandDto, BrandGenqlSelection, AWSS3UploadUrl, AWSS3GetUploadDto, CreateTenantInput, Tenant, TenantWithUserLogin, RegisterUserToDomainFromEmailInput, DecodedToken, Sponsorship, SponsorshipGenqlSelection, CreateSponsorshipDto, SponsorAthleteInvitation, InviteAthletesDto, RegisterUserDto, VerificationCode, VerifyCodeDto, FindSponsorAthleteInvitationDto, FindVtxUserDto, City, SportLevel, Sport, UserImages, EditValueResponse, CreateAthleteCompetitionDto, AthleteCompetition, GetSportEventsDto, SportsEvent, CreateSportEventDto, UpdateSportEventDto, GetAthleteCompetitionsDto, AthleteMembership, AthleteMembershipGenqlSelection, MembershipOrganizationReferenceGenqlSelection, MembershipOrganizationReference, CreateMembershipOrganizationDto, CreateAthleteMembershipDto, DeleteSingleValueDto, DeleteSingleValueResponse, FundRaisingCampaign, CreateFundingCampaignDto, FundRaisingCampaignGenqlSelection, AthleteQueryDto, AthleteQueryResponse, StripeSessionGenqlSelection, CreateStripeAccountDto, StripeSession, StripeAccountReferenceGenqlSelection, StripeAccountReference, StripeCheckoutSessionGenqlSelection, StripeCheckoutSession, DonationCheckoutDto, GetDatabaseFileDto, TextDatabaseFileGenqlSelection, TextDatabaseFile, StripeQueryDto, StripeObject, SetFundingStatusDto, EditPictureResponse, UploadAlbumsPicturesDto, UpdateUserSuspendedStatusDto, EditPictureDto, Album, State, Country, AWSS3DeleteUseTypeKeyDto, AthleteIntegrationReference, AWSS3CallResult, SetCompetitionResultDto, AthleteCompetitionResult, CodeVerificationResponse, resetPasswordDto, DeleteValuesDto, existValueDto, ExistValueResponse, Receipt, ReceiptUrl, GetReceiptDto, DeleteValuesResponse, BudgetData, AddCompetitionBudgetDto, EditCompetitionBudgetDto, EditCampaignBudgetDto, SetCurrentCampaignDto, GetAthleteCampaignsDto, UpdateFundingCampaignDto, EditDisplayIndexDto, MergeEventsResponse, MergeSportsEventsDto, BudgetConcept, BudgetItemUnit, CompetitionDeleteVerificationResponse, RegisterMemberDto, Member, Donation, DonationGenqlSelection, GetHistoricalScoresDto, HistoricalScore, GetMyHistoricalScoresDto, HistoricalScoresPeriod, GetTransactionDetailsDto, TransactionDetails, TransactionDetailsGenqlSelection, AdminUserView, AdminTransactionView, PaginatedTransactions, TransactionQueryDto, PaginatedUsers, UserQueryDto, EventQueryDto, PaginatedSports, SportQueryDto, StripeBalance, StripeBalanceGenqlSelection, DeleteVtxUserDto, DeleteVtxUserResponse, ForceScoreRefreshResponse, Offer, OfferGenqlSelection, CreateOfferDto, Sponsor, SponsorGenqlSelection, CreateSponsorDto, PaginatedBrands, BrandQueryDto, PaginatedEvents, SponsorQueryDto, PaginatedSponsors, OfferQueryDto, PaginatedOffers, PaginatedOffersWithEligibility, UploadResult, LeaderboardResponse, UserRank, LeaderboardQueryDto, UserRankQueryDto, DashboardSummary, ScoreHistoryEntry, RankHistoryEntry, RankContext, ActivitiesResponse, ActivityDetail, ComponentSummary, ScoreHistoryQueryDto, RankHistoryQueryDto, RankContextQueryDto, ActivitiesQueryDto, ActivityDetailQueryDto, ComponentSummaryQueryDto, Platform, PeriodType, ContentType, PostSortOption } from '../client';
|
|
2
2
|
import { ITypedBackendResponse } from './backend-response';
|
|
3
3
|
import { APICallHeaders } from './api-call-headers';
|
|
4
4
|
import { VerificationCodeType } from '@vertikalx/common-types';
|
|
@@ -200,4 +200,43 @@ export declare class VTXBaseAPI {
|
|
|
200
200
|
input: UserRankQueryDto;
|
|
201
201
|
}): Promise<ITypedBackendResponse<UserRank>>;
|
|
202
202
|
rebuildLeaderboardCache(): Promise<ITypedBackendResponse<boolean>>;
|
|
203
|
+
getAthleteDashboard(athleteId: string): Promise<ITypedBackendResponse<DashboardSummary>>;
|
|
204
|
+
getAthleteScoreHistory(args: {
|
|
205
|
+
input: ScoreHistoryQueryDto;
|
|
206
|
+
}): Promise<ITypedBackendResponse<ScoreHistoryEntry[]>>;
|
|
207
|
+
getAthleteRankHistory(args: {
|
|
208
|
+
input: RankHistoryQueryDto;
|
|
209
|
+
}): Promise<ITypedBackendResponse<RankHistoryEntry[]>>;
|
|
210
|
+
getAthleteRankContext(args: {
|
|
211
|
+
input: RankContextQueryDto;
|
|
212
|
+
}): Promise<ITypedBackendResponse<RankContext>>;
|
|
213
|
+
getAthleteActivities(args: {
|
|
214
|
+
input: ActivitiesQueryDto;
|
|
215
|
+
}): Promise<ITypedBackendResponse<ActivitiesResponse>>;
|
|
216
|
+
getAthleteActivityDetail(args: {
|
|
217
|
+
input: ActivityDetailQueryDto;
|
|
218
|
+
}): Promise<ITypedBackendResponse<ActivityDetail>>;
|
|
219
|
+
getAthleteComponentSummary(args: {
|
|
220
|
+
input: ComponentSummaryQueryDto;
|
|
221
|
+
}): Promise<ITypedBackendResponse<ComponentSummary>>;
|
|
222
|
+
getSocialAggregates(args: {
|
|
223
|
+
input: {
|
|
224
|
+
athleteId: string;
|
|
225
|
+
platform: Platform;
|
|
226
|
+
startDate: string;
|
|
227
|
+
endDate: string;
|
|
228
|
+
periodType?: PeriodType;
|
|
229
|
+
};
|
|
230
|
+
}): Promise<ITypedBackendResponse<any[]>>;
|
|
231
|
+
getPostsWithComparison(args: {
|
|
232
|
+
input: {
|
|
233
|
+
athleteId: string;
|
|
234
|
+
platform: Platform;
|
|
235
|
+
sortBy?: PostSortOption;
|
|
236
|
+
contentType?: ContentType;
|
|
237
|
+
limit?: number;
|
|
238
|
+
offset?: number;
|
|
239
|
+
comparisonWindowDays?: number;
|
|
240
|
+
};
|
|
241
|
+
}): Promise<ITypedBackendResponse<any>>;
|
|
203
242
|
}
|
package/src/api/vtx-base-api.js
CHANGED
|
@@ -10623,6 +10623,390 @@ class VTXBaseAPI {
|
|
|
10623
10623
|
}
|
|
10624
10624
|
return retValue;
|
|
10625
10625
|
}
|
|
10626
|
+
async getAthleteDashboard(athleteId) {
|
|
10627
|
+
const client = (0, client_1.createClient)({
|
|
10628
|
+
url: this.backendUrl + "/graphql",
|
|
10629
|
+
headers: this.headers,
|
|
10630
|
+
});
|
|
10631
|
+
const fields = {
|
|
10632
|
+
vtxScore: true,
|
|
10633
|
+
socialScore: true,
|
|
10634
|
+
trainingScore: true,
|
|
10635
|
+
competitionScore: true,
|
|
10636
|
+
lastUpdated: true,
|
|
10637
|
+
};
|
|
10638
|
+
let retValue;
|
|
10639
|
+
try {
|
|
10640
|
+
const response = await client.query({
|
|
10641
|
+
athleteDashboard: {
|
|
10642
|
+
__args: { athleteId },
|
|
10643
|
+
...fields
|
|
10644
|
+
}
|
|
10645
|
+
});
|
|
10646
|
+
VTXBaseAPI.Logger.debug('getAthleteDashboard Response:');
|
|
10647
|
+
VTXBaseAPI.Logger.debug(JSON.stringify(response, null, 2));
|
|
10648
|
+
retValue = (0, response_builder_1.buildResponse)(response, 'athleteDashboard', (r) => {
|
|
10649
|
+
const isResponseOk = response?.athleteDashboard?.vtxScore !== undefined;
|
|
10650
|
+
return isResponseOk;
|
|
10651
|
+
});
|
|
10652
|
+
}
|
|
10653
|
+
catch (err1) {
|
|
10654
|
+
VTXBaseAPI.Logger.error('getAthleteDashboard err1:');
|
|
10655
|
+
VTXBaseAPI.Logger.error(err1);
|
|
10656
|
+
retValue = (0, response_builder_1.buildErrorResponse)(err1);
|
|
10657
|
+
}
|
|
10658
|
+
return retValue;
|
|
10659
|
+
}
|
|
10660
|
+
async getAthleteScoreHistory(args) {
|
|
10661
|
+
const client = (0, client_1.createClient)({
|
|
10662
|
+
url: this.backendUrl + "/graphql",
|
|
10663
|
+
headers: this.headers,
|
|
10664
|
+
});
|
|
10665
|
+
const fields = {
|
|
10666
|
+
date: true,
|
|
10667
|
+
vtxScore: true,
|
|
10668
|
+
socialScore: true,
|
|
10669
|
+
trainingScore: true,
|
|
10670
|
+
competitionScore: true,
|
|
10671
|
+
};
|
|
10672
|
+
let retValue;
|
|
10673
|
+
try {
|
|
10674
|
+
const response = await client.query({
|
|
10675
|
+
athleteScoreHistory: {
|
|
10676
|
+
__args: args,
|
|
10677
|
+
...fields
|
|
10678
|
+
}
|
|
10679
|
+
});
|
|
10680
|
+
VTXBaseAPI.Logger.debug('getAthleteScoreHistory Response:');
|
|
10681
|
+
VTXBaseAPI.Logger.debug(JSON.stringify(response, null, 2));
|
|
10682
|
+
retValue = (0, response_builder_1.buildResponse)(response, 'athleteScoreHistory', (r) => {
|
|
10683
|
+
const isResponseOk = Array.isArray(response?.athleteScoreHistory);
|
|
10684
|
+
return isResponseOk;
|
|
10685
|
+
});
|
|
10686
|
+
}
|
|
10687
|
+
catch (err1) {
|
|
10688
|
+
VTXBaseAPI.Logger.error('getAthleteScoreHistory err1:');
|
|
10689
|
+
VTXBaseAPI.Logger.error(err1);
|
|
10690
|
+
retValue = (0, response_builder_1.buildErrorResponse)(err1);
|
|
10691
|
+
}
|
|
10692
|
+
return retValue;
|
|
10693
|
+
}
|
|
10694
|
+
async getAthleteRankHistory(args) {
|
|
10695
|
+
const client = (0, client_1.createClient)({
|
|
10696
|
+
url: this.backendUrl + "/graphql",
|
|
10697
|
+
headers: this.headers,
|
|
10698
|
+
});
|
|
10699
|
+
const fields = {
|
|
10700
|
+
date: true,
|
|
10701
|
+
globalRank: true,
|
|
10702
|
+
countryRank: true,
|
|
10703
|
+
};
|
|
10704
|
+
let retValue;
|
|
10705
|
+
try {
|
|
10706
|
+
const response = await client.query({
|
|
10707
|
+
athleteRankHistory: {
|
|
10708
|
+
__args: args,
|
|
10709
|
+
...fields
|
|
10710
|
+
}
|
|
10711
|
+
});
|
|
10712
|
+
VTXBaseAPI.Logger.debug('getAthleteRankHistory Response:');
|
|
10713
|
+
VTXBaseAPI.Logger.debug(JSON.stringify(response, null, 2));
|
|
10714
|
+
retValue = (0, response_builder_1.buildResponse)(response, 'athleteRankHistory', (r) => {
|
|
10715
|
+
const isResponseOk = Array.isArray(response?.athleteRankHistory);
|
|
10716
|
+
return isResponseOk;
|
|
10717
|
+
});
|
|
10718
|
+
}
|
|
10719
|
+
catch (err1) {
|
|
10720
|
+
VTXBaseAPI.Logger.error('getAthleteRankHistory err1:');
|
|
10721
|
+
VTXBaseAPI.Logger.error(err1);
|
|
10722
|
+
retValue = (0, response_builder_1.buildErrorResponse)(err1);
|
|
10723
|
+
}
|
|
10724
|
+
return retValue;
|
|
10725
|
+
}
|
|
10726
|
+
async getAthleteRankContext(args) {
|
|
10727
|
+
const client = (0, client_1.createClient)({
|
|
10728
|
+
url: this.backendUrl + "/graphql",
|
|
10729
|
+
headers: this.headers,
|
|
10730
|
+
});
|
|
10731
|
+
const fields = {
|
|
10732
|
+
globalRank: true,
|
|
10733
|
+
countryRank: true,
|
|
10734
|
+
rankChange: true,
|
|
10735
|
+
percentile: true,
|
|
10736
|
+
gapToNext: true,
|
|
10737
|
+
gapFromPrevious: true,
|
|
10738
|
+
totalAthletes: true,
|
|
10739
|
+
};
|
|
10740
|
+
let retValue;
|
|
10741
|
+
try {
|
|
10742
|
+
const response = await client.query({
|
|
10743
|
+
athleteRankContext: {
|
|
10744
|
+
__args: args,
|
|
10745
|
+
...fields
|
|
10746
|
+
}
|
|
10747
|
+
});
|
|
10748
|
+
VTXBaseAPI.Logger.debug('getAthleteRankContext Response:');
|
|
10749
|
+
VTXBaseAPI.Logger.debug(JSON.stringify(response, null, 2));
|
|
10750
|
+
retValue = (0, response_builder_1.buildResponse)(response, 'athleteRankContext', (r) => {
|
|
10751
|
+
const isResponseOk = response?.athleteRankContext !== undefined;
|
|
10752
|
+
return isResponseOk;
|
|
10753
|
+
});
|
|
10754
|
+
}
|
|
10755
|
+
catch (err1) {
|
|
10756
|
+
VTXBaseAPI.Logger.error('getAthleteRankContext err1:');
|
|
10757
|
+
VTXBaseAPI.Logger.error(err1);
|
|
10758
|
+
retValue = (0, response_builder_1.buildErrorResponse)(err1);
|
|
10759
|
+
}
|
|
10760
|
+
return retValue;
|
|
10761
|
+
}
|
|
10762
|
+
async getAthleteActivities(args) {
|
|
10763
|
+
const client = (0, client_1.createClient)({
|
|
10764
|
+
url: this.backendUrl + "/graphql",
|
|
10765
|
+
headers: this.headers,
|
|
10766
|
+
});
|
|
10767
|
+
const itemFields = {
|
|
10768
|
+
id: true,
|
|
10769
|
+
date: true,
|
|
10770
|
+
type: true,
|
|
10771
|
+
metrics: true,
|
|
10772
|
+
pointsEarned: true,
|
|
10773
|
+
counted: true,
|
|
10774
|
+
notCountedReason: true,
|
|
10775
|
+
};
|
|
10776
|
+
const fields = {
|
|
10777
|
+
items: itemFields,
|
|
10778
|
+
total: true,
|
|
10779
|
+
hasMore: true,
|
|
10780
|
+
};
|
|
10781
|
+
let retValue;
|
|
10782
|
+
try {
|
|
10783
|
+
const response = await client.query({
|
|
10784
|
+
athleteActivities: {
|
|
10785
|
+
__args: args,
|
|
10786
|
+
...fields
|
|
10787
|
+
}
|
|
10788
|
+
});
|
|
10789
|
+
VTXBaseAPI.Logger.debug('getAthleteActivities Response:');
|
|
10790
|
+
VTXBaseAPI.Logger.debug(JSON.stringify(response, null, 2));
|
|
10791
|
+
retValue = (0, response_builder_1.buildResponse)(response, 'athleteActivities', (r) => {
|
|
10792
|
+
const isResponseOk = response?.athleteActivities?.items !== undefined;
|
|
10793
|
+
return isResponseOk;
|
|
10794
|
+
});
|
|
10795
|
+
}
|
|
10796
|
+
catch (err1) {
|
|
10797
|
+
VTXBaseAPI.Logger.error('getAthleteActivities err1:');
|
|
10798
|
+
VTXBaseAPI.Logger.error(err1);
|
|
10799
|
+
retValue = (0, response_builder_1.buildErrorResponse)(err1);
|
|
10800
|
+
}
|
|
10801
|
+
return retValue;
|
|
10802
|
+
}
|
|
10803
|
+
async getAthleteActivityDetail(args) {
|
|
10804
|
+
const client = (0, client_1.createClient)({
|
|
10805
|
+
url: this.backendUrl + "/graphql",
|
|
10806
|
+
headers: this.headers,
|
|
10807
|
+
});
|
|
10808
|
+
const metricFields = {
|
|
10809
|
+
name: true,
|
|
10810
|
+
value: true,
|
|
10811
|
+
unit: true,
|
|
10812
|
+
athleteAverage: true,
|
|
10813
|
+
comparisonPercent: true,
|
|
10814
|
+
};
|
|
10815
|
+
const scoreInfoFields = {
|
|
10816
|
+
earned: true,
|
|
10817
|
+
maxPossible: true,
|
|
10818
|
+
componentAverage: true,
|
|
10819
|
+
};
|
|
10820
|
+
const fields = {
|
|
10821
|
+
id: true,
|
|
10822
|
+
date: true,
|
|
10823
|
+
type: true,
|
|
10824
|
+
category: true,
|
|
10825
|
+
metrics: metricFields,
|
|
10826
|
+
scoreInfo: scoreInfoFields,
|
|
10827
|
+
};
|
|
10828
|
+
let retValue;
|
|
10829
|
+
try {
|
|
10830
|
+
const response = await client.query({
|
|
10831
|
+
athleteActivityDetail: {
|
|
10832
|
+
__args: args,
|
|
10833
|
+
...fields
|
|
10834
|
+
}
|
|
10835
|
+
});
|
|
10836
|
+
VTXBaseAPI.Logger.debug('getAthleteActivityDetail Response:');
|
|
10837
|
+
VTXBaseAPI.Logger.debug(JSON.stringify(response, null, 2));
|
|
10838
|
+
retValue = (0, response_builder_1.buildResponse)(response, 'athleteActivityDetail', (r) => {
|
|
10839
|
+
const isResponseOk = response?.athleteActivityDetail?.id !== undefined;
|
|
10840
|
+
return isResponseOk;
|
|
10841
|
+
});
|
|
10842
|
+
}
|
|
10843
|
+
catch (err1) {
|
|
10844
|
+
VTXBaseAPI.Logger.error('getAthleteActivityDetail err1:');
|
|
10845
|
+
VTXBaseAPI.Logger.error(err1);
|
|
10846
|
+
retValue = (0, response_builder_1.buildErrorResponse)(err1);
|
|
10847
|
+
}
|
|
10848
|
+
return retValue;
|
|
10849
|
+
}
|
|
10850
|
+
async getAthleteComponentSummary(args) {
|
|
10851
|
+
const client = (0, client_1.createClient)({
|
|
10852
|
+
url: this.backendUrl + "/graphql",
|
|
10853
|
+
headers: this.headers,
|
|
10854
|
+
});
|
|
10855
|
+
const topMetricFields = {
|
|
10856
|
+
name: true,
|
|
10857
|
+
status: true,
|
|
10858
|
+
};
|
|
10859
|
+
const fields = {
|
|
10860
|
+
name: true,
|
|
10861
|
+
score: true,
|
|
10862
|
+
maxScore: true,
|
|
10863
|
+
trend: true,
|
|
10864
|
+
trendPeriod: true,
|
|
10865
|
+
activityCount: true,
|
|
10866
|
+
avgScorePerActivity: true,
|
|
10867
|
+
topMetrics: topMetricFields,
|
|
10868
|
+
};
|
|
10869
|
+
let retValue;
|
|
10870
|
+
try {
|
|
10871
|
+
const response = await client.query({
|
|
10872
|
+
athleteComponentSummary: {
|
|
10873
|
+
__args: args,
|
|
10874
|
+
...fields
|
|
10875
|
+
}
|
|
10876
|
+
});
|
|
10877
|
+
VTXBaseAPI.Logger.debug('getAthleteComponentSummary Response:');
|
|
10878
|
+
VTXBaseAPI.Logger.debug(JSON.stringify(response, null, 2));
|
|
10879
|
+
retValue = (0, response_builder_1.buildResponse)(response, 'athleteComponentSummary', (r) => {
|
|
10880
|
+
const isResponseOk = response?.athleteComponentSummary?.name !== undefined;
|
|
10881
|
+
return isResponseOk;
|
|
10882
|
+
});
|
|
10883
|
+
}
|
|
10884
|
+
catch (err1) {
|
|
10885
|
+
VTXBaseAPI.Logger.error('getAthleteComponentSummary err1:');
|
|
10886
|
+
VTXBaseAPI.Logger.error(err1);
|
|
10887
|
+
retValue = (0, response_builder_1.buildErrorResponse)(err1);
|
|
10888
|
+
}
|
|
10889
|
+
return retValue;
|
|
10890
|
+
}
|
|
10891
|
+
async getSocialAggregates(args) {
|
|
10892
|
+
const client = (0, client_1.createClient)({
|
|
10893
|
+
url: this.backendUrl + "/graphql",
|
|
10894
|
+
headers: this.headers,
|
|
10895
|
+
});
|
|
10896
|
+
const fields = {
|
|
10897
|
+
_id: true,
|
|
10898
|
+
athleteId: true,
|
|
10899
|
+
platform: true,
|
|
10900
|
+
contentType: true,
|
|
10901
|
+
periodType: true,
|
|
10902
|
+
periodLabel: true,
|
|
10903
|
+
periodStart: true,
|
|
10904
|
+
periodEnd: true,
|
|
10905
|
+
totalLikes: true,
|
|
10906
|
+
totalComments: true,
|
|
10907
|
+
totalShares: true,
|
|
10908
|
+
totalSaves: true,
|
|
10909
|
+
totalReach: true,
|
|
10910
|
+
totalViews: true,
|
|
10911
|
+
totalImpressions: true,
|
|
10912
|
+
postCount: true,
|
|
10913
|
+
followerCount: true,
|
|
10914
|
+
avgEngagementRate: true,
|
|
10915
|
+
avgPostEngagement: true,
|
|
10916
|
+
};
|
|
10917
|
+
let retValue;
|
|
10918
|
+
try {
|
|
10919
|
+
const response = await client.query({
|
|
10920
|
+
socialAggregates: {
|
|
10921
|
+
__args: {
|
|
10922
|
+
athleteId: args.input.athleteId,
|
|
10923
|
+
platform: args.input.platform,
|
|
10924
|
+
range: {
|
|
10925
|
+
start: args.input.startDate,
|
|
10926
|
+
end: args.input.endDate,
|
|
10927
|
+
},
|
|
10928
|
+
periodType: args.input.periodType,
|
|
10929
|
+
},
|
|
10930
|
+
...fields
|
|
10931
|
+
}
|
|
10932
|
+
});
|
|
10933
|
+
VTXBaseAPI.Logger.debug('getSocialAggregates Response:');
|
|
10934
|
+
VTXBaseAPI.Logger.debug(JSON.stringify(response, null, 2));
|
|
10935
|
+
retValue = (0, response_builder_1.buildResponse)(response, 'socialAggregates', (r) => {
|
|
10936
|
+
const isResponseOk = response?.socialAggregates !== undefined;
|
|
10937
|
+
return isResponseOk;
|
|
10938
|
+
});
|
|
10939
|
+
}
|
|
10940
|
+
catch (err1) {
|
|
10941
|
+
VTXBaseAPI.Logger.error('getSocialAggregates err1:');
|
|
10942
|
+
VTXBaseAPI.Logger.error(err1);
|
|
10943
|
+
retValue = (0, response_builder_1.buildErrorResponse)(err1);
|
|
10944
|
+
}
|
|
10945
|
+
return retValue;
|
|
10946
|
+
}
|
|
10947
|
+
async getPostsWithComparison(args) {
|
|
10948
|
+
const client = (0, client_1.createClient)({
|
|
10949
|
+
url: this.backendUrl + "/graphql",
|
|
10950
|
+
headers: this.headers,
|
|
10951
|
+
});
|
|
10952
|
+
const postFields = {
|
|
10953
|
+
id: true,
|
|
10954
|
+
postId: true,
|
|
10955
|
+
permalink: true,
|
|
10956
|
+
thumbnailUrl: true,
|
|
10957
|
+
contentType: true,
|
|
10958
|
+
caption: true,
|
|
10959
|
+
postedAt: true,
|
|
10960
|
+
likes: true,
|
|
10961
|
+
comments: true,
|
|
10962
|
+
shares: true,
|
|
10963
|
+
saves: true,
|
|
10964
|
+
reach: true,
|
|
10965
|
+
vsAvgPercent: true,
|
|
10966
|
+
};
|
|
10967
|
+
const fields = {
|
|
10968
|
+
posts: postFields,
|
|
10969
|
+
averages: {
|
|
10970
|
+
likes: true,
|
|
10971
|
+
comments: true,
|
|
10972
|
+
reach: true,
|
|
10973
|
+
engagementRate: true,
|
|
10974
|
+
},
|
|
10975
|
+
total: true,
|
|
10976
|
+
hasMore: true,
|
|
10977
|
+
};
|
|
10978
|
+
let retValue;
|
|
10979
|
+
try {
|
|
10980
|
+
const response = await client.query({
|
|
10981
|
+
postsWithComparison: {
|
|
10982
|
+
__args: {
|
|
10983
|
+
athleteId: args.input.athleteId,
|
|
10984
|
+
platform: args.input.platform,
|
|
10985
|
+
options: {
|
|
10986
|
+
sortBy: args.input.sortBy,
|
|
10987
|
+
contentType: args.input.contentType,
|
|
10988
|
+
limit: args.input.limit,
|
|
10989
|
+
offset: args.input.offset,
|
|
10990
|
+
comparisonWindowDays: args.input.comparisonWindowDays,
|
|
10991
|
+
},
|
|
10992
|
+
},
|
|
10993
|
+
...fields
|
|
10994
|
+
}
|
|
10995
|
+
});
|
|
10996
|
+
VTXBaseAPI.Logger.debug('getPostsWithComparison Response:');
|
|
10997
|
+
VTXBaseAPI.Logger.debug(JSON.stringify(response, null, 2));
|
|
10998
|
+
retValue = (0, response_builder_1.buildResponse)(response, 'postsWithComparison', (r) => {
|
|
10999
|
+
const isResponseOk = response?.postsWithComparison !== undefined;
|
|
11000
|
+
return isResponseOk;
|
|
11001
|
+
});
|
|
11002
|
+
}
|
|
11003
|
+
catch (err1) {
|
|
11004
|
+
VTXBaseAPI.Logger.error('getPostsWithComparison err1:');
|
|
11005
|
+
VTXBaseAPI.Logger.error(err1);
|
|
11006
|
+
retValue = (0, response_builder_1.buildErrorResponse)(err1);
|
|
11007
|
+
}
|
|
11008
|
+
return retValue;
|
|
11009
|
+
}
|
|
10626
11010
|
}
|
|
10627
11011
|
exports.VTXBaseAPI = VTXBaseAPI;
|
|
10628
11012
|
VTXBaseAPI.Logger = {
|