saleor-dashboard/src/home/queries.ts
Dominik Żegleń 2a52eb581c
Update apollo to v3 (#1837)
* Update apollo to v3

* Fix imports

* Add generated file to ignored

* Use proper import

* Tidy up code

* Remove unused packages

* Fix tests
2022-02-21 14:32:38 +01:00

98 lines
2.1 KiB
TypeScript

import { gql } from "@apollo/client";
import makeQuery from "@saleor/hooks/makeQuery";
import { Home, HomeVariables } from "./types/Home";
const home = gql`
query Home(
$channel: String!
$datePeriod: DateRangeInput!
$PERMISSION_MANAGE_PRODUCTS: Boolean!
$PERMISSION_MANAGE_ORDERS: Boolean!
) {
salesToday: ordersTotal(period: TODAY, channel: $channel)
@include(if: $PERMISSION_MANAGE_ORDERS) {
gross {
amount
currency
}
}
ordersToday: orders(filter: { created: $datePeriod }, channel: $channel)
@include(if: $PERMISSION_MANAGE_ORDERS) {
totalCount
}
ordersToFulfill: orders(
filter: { status: READY_TO_FULFILL }
channel: $channel
) @include(if: $PERMISSION_MANAGE_ORDERS) {
totalCount
}
ordersToCapture: orders(
filter: { status: READY_TO_CAPTURE }
channel: $channel
) @include(if: $PERMISSION_MANAGE_ORDERS) {
totalCount
}
productsOutOfStock: products(
filter: { stockAvailability: OUT_OF_STOCK }
channel: $channel
) {
totalCount
}
productTopToday: reportProductSales(
period: TODAY
first: 5
channel: $channel
) @include(if: $PERMISSION_MANAGE_PRODUCTS) {
edges {
node {
id
revenue(period: TODAY) {
gross {
amount
currency
}
}
attributes {
values {
id
name
}
}
product {
id
name
thumbnail {
url
}
}
quantityOrdered
}
}
}
activities: homepageEvents(last: 10)
@include(if: $PERMISSION_MANAGE_ORDERS) {
edges {
node {
amount
composedId
date
email
emailType
id
message
orderNumber
oversoldItems
quantity
type
user {
id
email
}
}
}
}
}
`;
export const useHomePage = makeQuery<Home, HomeVariables>(home);