saleor-dashboard/src/orders/queries.ts
Wojciech Mista 6e09ec9bb2
Use variant prices in add product modal (#1698)
* Replace channel price with variant price; add new price label

* Update fixtures

* Remove unused code

* Remove unused style

* Lint fix

* Remove type conversion

* lint fix

* update queries and types

* CR Fixes

* Money align right
2021-12-23 16:00:37 +01:00

375 lines
7.5 KiB
TypeScript

import { fragmentAddress } from "@saleor/fragments/address";
import {
fragmentOrderDetails,
fragmentOrderSettings,
fragmentRefundOrderLine,
fragmentShopOrderSettings
} from "@saleor/fragments/orders";
import { fragmentMoney } from "@saleor/fragments/products";
import { warehouseFragment } from "@saleor/fragments/warehouses";
import makeQuery from "@saleor/hooks/makeQuery";
import makeTopLevelSearch from "@saleor/hooks/makeTopLevelSearch";
import gql from "graphql-tag";
import { TypedQuery } from "../queries";
import { OrderDetails, OrderDetailsVariables } from "./types/OrderDetails";
import {
OrderDraftList,
OrderDraftListVariables
} from "./types/OrderDraftList";
import {
OrderFulfillData,
OrderFulfillDataVariables
} from "./types/OrderFulfillData";
import { OrderFulfillSettings } from "./types/OrderFulfillSettings";
import { OrderList, OrderListVariables } from "./types/OrderList";
import {
OrderRefundData,
OrderRefundDataVariables
} from "./types/OrderRefundData";
import { OrderSettings } from "./types/OrderSettings";
import {
SearchOrderVariant as SearchOrderVariantType,
SearchOrderVariantVariables
} from "./types/SearchOrderVariant";
export const orderListQuery = gql`
${fragmentAddress}
query OrderList(
$first: Int
$after: String
$last: Int
$before: String
$filter: OrderFilterInput
$sort: OrderSortingInput
) {
orders(
before: $before
after: $after
first: $first
last: $last
filter: $filter
sortBy: $sort
) {
edges {
node {
__typename
billingAddress {
...AddressFragment
}
created
id
number
paymentStatus
status
total {
__typename
gross {
__typename
amount
currency
}
}
userEmail
}
}
pageInfo {
hasPreviousPage
hasNextPage
startCursor
endCursor
}
}
}
`;
export const useOrderListQuery = makeQuery<OrderList, OrderListVariables>(
orderListQuery
);
export const orderDraftListQuery = gql`
${fragmentAddress}
query OrderDraftList(
$first: Int
$after: String
$last: Int
$before: String
$filter: OrderDraftFilterInput
$sort: OrderSortingInput
) {
draftOrders(
before: $before
after: $after
first: $first
last: $last
filter: $filter
sortBy: $sort
) {
edges {
node {
__typename
billingAddress {
...AddressFragment
}
created
id
number
paymentStatus
status
total {
__typename
gross {
__typename
amount
currency
}
}
userEmail
}
}
pageInfo {
hasPreviousPage
hasNextPage
startCursor
endCursor
}
}
}
`;
export const useOrderDraftListQuery = makeQuery<
OrderDraftList,
OrderDraftListVariables
>(orderDraftListQuery);
export const orderDetailsQuery = gql`
${fragmentOrderDetails}
${fragmentMoney}
query OrderDetails($id: ID!) {
order(id: $id) {
...OrderDetailsFragment
}
shop {
countries {
code
country
}
defaultWeightUnit
fulfillmentAllowUnpaid
fulfillmentAutoApprove
}
}
`;
export const TypedOrderDetailsQuery = TypedQuery<
OrderDetails,
OrderDetailsVariables
>(orderDetailsQuery);
export const useOrderQuery = makeQuery<OrderDetails, OrderDetailsVariables>(
orderDetailsQuery
);
export const searchOrderVariant = gql`
${fragmentMoney}
query SearchOrderVariant(
$channel: String!
$first: Int!
$query: String!
$after: String
$address: AddressInput
) {
search: products(
first: $first
after: $after
filter: { search: $query }
channel: $channel
) {
edges {
node {
id
name
thumbnail {
url
}
variants {
id
name
sku
pricing(address: $address) {
priceUndiscounted {
gross {
...Money
}
}
price {
gross {
...Money
}
}
onSale
}
channelListings {
channel {
id
isActive
name
currencyCode
}
price {
amount
currency
}
}
}
}
}
pageInfo {
endCursor
hasNextPage
hasPreviousPage
startCursor
}
}
}
`;
export const useOrderVariantSearch = makeTopLevelSearch<
SearchOrderVariantType,
SearchOrderVariantVariables
>(searchOrderVariant);
const orderFulfillData = gql`
${warehouseFragment}
query OrderFulfillData($orderId: ID!) {
order(id: $orderId) {
id
isPaid
deliveryMethod {
__typename
... on ShippingMethod {
id
}
... on Warehouse {
id
clickAndCollectOption
}
}
lines {
id
isShippingRequired
productName
quantity
allocations {
quantity
warehouse {
id
}
}
quantityFulfilled
quantityToFulfill
variant {
id
name
sku
preorder {
endDate
}
attributes {
values {
id
name
}
}
stocks {
id
warehouse {
...WarehouseFragment
}
quantity
quantityAllocated
}
trackInventory
}
thumbnail(size: 64) {
url
}
}
number
}
}
`;
export const useOrderFulfillData = makeQuery<
OrderFulfillData,
OrderFulfillDataVariables
>(orderFulfillData);
export const orderFulfillSettingsQuery = gql`
${fragmentShopOrderSettings}
query OrderFulfillSettings {
shop {
...ShopOrderSettingsFragment
}
}
`;
export const useOrderFulfillSettingsQuery = makeQuery<
OrderFulfillSettings,
never
>(orderFulfillSettingsQuery);
export const orderSettingsQuery = gql`
${fragmentOrderSettings}
${fragmentShopOrderSettings}
query OrderSettings {
orderSettings {
...OrderSettingsFragment
}
shop {
...ShopOrderSettingsFragment
}
}
`;
export const useOrderSettingsQuery = makeQuery<OrderSettings, never>(
orderSettingsQuery
);
const orderRefundData = gql`
${fragmentMoney}
${fragmentRefundOrderLine}
query OrderRefundData($orderId: ID!) {
order(id: $orderId) {
id
number
total {
gross {
...Money
}
}
totalCaptured {
...Money
}
shippingPrice {
gross {
...Money
}
}
lines {
...RefundOrderLineFragment
quantityToFulfill
}
fulfillments {
id
status
fulfillmentOrder
lines {
id
quantity
orderLine {
...RefundOrderLineFragment
}
}
}
}
}
`;
export const useOrderRefundData = makeQuery<
OrderRefundData,
OrderRefundDataVariables
>(orderRefundData);