@iexec/dataprotector
Version:
This product enables users to confidentially store data–such as mail address, documents, personal information ...
51 lines (47 loc) • 1.34 kB
text/typescript
import { gql } from 'graphql-request';
import { GetCollectionSubscriptionsGraphQLResponse } from '../../types/graphQLTypes.js';
import { GetCollectionSubscriptionsParams } from '../../types/index.js';
import { SubgraphConsumer } from '../../types/internalTypes.js';
export const getCollectionSubscriptionsQuery = async ({
graphQLClient,
subscriberAddress,
collectionId,
includePastSubscriptions,
}: SubgraphConsumer &
GetCollectionSubscriptionsParams): Promise<GetCollectionSubscriptionsGraphQLResponse> => {
const collectionSubscriptionsQuery = gql`
query ($where: CollectionSubscription_filter) {
collectionSubscriptions(where: $where) {
id
collection {
id
owner {
id
}
subscriptionParams {
price
duration
}
}
subscriber {
id
}
creationTimestamp
endDate
}
}
`;
const variables = {
where: {
subscriber: subscriberAddress || undefined,
collection: collectionId?.toString(),
endDate_gte: includePastSubscriptions
? undefined
: Math.floor(new Date().getTime() / 1000),
},
};
return graphQLClient.request<GetCollectionSubscriptionsGraphQLResponse>(
collectionSubscriptionsQuery,
variables
);
};