hooks/init: use Promise.all in getInitialData
This commit is contained in:
parent
33b06a14b4
commit
c264fe7f1e
@ -5,61 +5,66 @@ import type { ApolloClient } from '@apollo/client';
|
|||||||
import dayjs from 'dayjs';
|
import dayjs from 'dayjs';
|
||||||
|
|
||||||
export async function getInitialData({ query }: ApolloClient<object>, user: User) {
|
export async function getInitialData({ query }: ApolloClient<object>, user: User) {
|
||||||
const {
|
const leadsQuery = query({
|
||||||
data: { leads },
|
query: CRMTypes.GetLeadsDocument,
|
||||||
} = await query({ query: CRMTypes.GetLeadsDocument, variables: { domainname: user.domainName } });
|
variables: { domainname: user.domainName },
|
||||||
|
});
|
||||||
const {
|
const opportunitiesQuery = query({
|
||||||
data: { opportunities },
|
|
||||||
} = await query({
|
|
||||||
query: CRMTypes.GetOpportunitiesDocument,
|
query: CRMTypes.GetOpportunitiesDocument,
|
||||||
variables: { domainname: user.domainName },
|
variables: { domainname: user.domainName },
|
||||||
});
|
});
|
||||||
|
const transactionCurrenciesQuery = query({ query: CRMTypes.GetTransactionCurrenciesDocument });
|
||||||
const {
|
const productsQuery = query({
|
||||||
data: { transactioncurrencies },
|
fetchPolicy: 'network-only',
|
||||||
} = await query({
|
query: CRMTypes.GetProductsDocument,
|
||||||
query: CRMTypes.GetTransactionCurrenciesDocument,
|
variables: { currentDate: dayjs().utc(false).toISOString() },
|
||||||
});
|
});
|
||||||
|
const systemUserQuery = query({
|
||||||
|
fetchPolicy: 'network-only',
|
||||||
|
query: CRMTypes.GetSystemUserDocument,
|
||||||
|
variables: { domainname: user?.domainName },
|
||||||
|
});
|
||||||
|
|
||||||
|
const [
|
||||||
|
{
|
||||||
|
data: { leads },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
data: { opportunities },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
data: { transactioncurrencies },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
data: { evo_baseproducts },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
data: { systemuser },
|
||||||
|
},
|
||||||
|
] = await Promise.all([
|
||||||
|
leadsQuery,
|
||||||
|
opportunitiesQuery,
|
||||||
|
transactionCurrenciesQuery,
|
||||||
|
productsQuery,
|
||||||
|
systemUserQuery,
|
||||||
|
]);
|
||||||
|
|
||||||
const transactioncurrency_rub = transactioncurrencies?.find((x) => x?.isocurrencycode === 'RUB');
|
const transactioncurrency_rub = transactioncurrencies?.find((x) => x?.isocurrencycode === 'RUB');
|
||||||
|
|
||||||
if (transactioncurrency_rub?.transactioncurrencyid)
|
if (transactioncurrency_rub?.transactioncurrencyid) {
|
||||||
await query({
|
await query({
|
||||||
query: CRMTypes.GetTransactionCurrencyDocument,
|
query: CRMTypes.GetTransactionCurrencyDocument,
|
||||||
variables: {
|
variables: {
|
||||||
currencyid: transactioncurrency_rub?.transactioncurrencyid,
|
currencyid: transactioncurrency_rub?.transactioncurrencyid,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
}
|
||||||
const currentDate = dayjs().utc(false).toISOString();
|
|
||||||
let {
|
|
||||||
data: { evo_baseproducts },
|
|
||||||
} = await query({
|
|
||||||
fetchPolicy: 'network-only',
|
|
||||||
query: CRMTypes.GetProductsDocument,
|
|
||||||
variables: {
|
|
||||||
currentDate,
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
const {
|
|
||||||
data: { systemuser },
|
|
||||||
} = await query({
|
|
||||||
fetchPolicy: 'network-only',
|
|
||||||
query: CRMTypes.GetSystemUserDocument,
|
|
||||||
variables: {
|
|
||||||
domainname: user?.domainName,
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
evo_baseproducts = crmTools.evo_baseproducts(evo_baseproducts).filterBy.systemuser(systemuser);
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
options: {
|
options: {
|
||||||
selectLead: leads,
|
selectLead: leads,
|
||||||
selectOpportunity: opportunities,
|
selectOpportunity: opportunities,
|
||||||
selectProduct: evo_baseproducts,
|
selectProduct: crmTools.evo_baseproducts(evo_baseproducts).filterBy.systemuser(systemuser),
|
||||||
selectSupplierCurrency: transactioncurrencies,
|
selectSupplierCurrency: transactioncurrencies,
|
||||||
},
|
},
|
||||||
values: {
|
values: {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user