saleor-dashboard/src/orders/queries.ts
2019-09-16 16:45:52 +02:00

320 lines
5.4 KiB
TypeScript

import gql from "graphql-tag";
import BaseSearch from "../containers/BaseSearch";
import { TypedQuery } from "../queries";
import { OrderDetails, OrderDetailsVariables } from "./types/OrderDetails";
import {
OrderDraftList,
OrderDraftListVariables
} from "./types/OrderDraftList";
import { OrderList, OrderListVariables } from "./types/OrderList";
import {
SearchOrderVariant as SearchOrderVariantType,
SearchOrderVariantVariables
} from "./types/SearchOrderVariant";
export const fragmentOrderEvent = gql`
fragment OrderEventFragment on OrderEvent {
id
amount
date
email
emailType
message
quantity
type
user {
id
email
}
}
`;
export const fragmentAddress = gql`
fragment AddressFragment on Address {
city
cityArea
companyName
country {
__typename
code
country
}
countryArea
firstName
id
lastName
phone
postalCode
streetAddress1
streetAddress2
}
`;
export const fragmentOrderLine = gql`
fragment OrderLineFragment on OrderLine {
id
isShippingRequired
productName
productSku
quantity
quantityFulfilled
unitPrice {
gross {
amount
currency
}
net {
amount
currency
}
}
thumbnail {
url
}
}
`;
export const fragmentOrderDetails = gql`
${fragmentAddress}
${fragmentOrderEvent}
${fragmentOrderLine}
fragment OrderDetailsFragment on Order {
id
billingAddress {
...AddressFragment
}
canFinalize
created
customerNote
events {
...OrderEventFragment
}
fulfillments {
id
lines {
id
quantity
orderLine {
...OrderLineFragment
}
}
fulfillmentOrder
status
trackingNumber
}
lines {
...OrderLineFragment
}
number
paymentStatus
shippingAddress {
...AddressFragment
}
shippingMethod {
id
}
shippingMethodName
shippingPrice {
gross {
amount
currency
}
}
status
subtotal {
gross {
amount
currency
}
}
total {
gross {
amount
currency
}
tax {
amount
currency
}
}
actions
totalAuthorized {
amount
currency
}
totalCaptured {
amount
currency
}
user {
id
email
}
userEmail
availableShippingMethods {
id
name
price {
amount
currency
}
}
}
`;
export const orderListQuery = gql`
${fragmentAddress}
query OrderList(
$first: Int
$after: String
$last: Int
$before: String
$filter: OrderFilterInput
) {
orders(
before: $before
after: $after
first: $first
last: $last
filter: $filter
) {
edges {
node {
__typename
billingAddress {
...AddressFragment
}
created
id
number
paymentStatus
status
total {
__typename
gross {
__typename
amount
currency
}
}
userEmail
}
}
pageInfo {
hasPreviousPage
hasNextPage
startCursor
endCursor
}
}
}
`;
export const TypedOrderListQuery = TypedQuery<OrderList, OrderListVariables>(
orderListQuery
);
export const orderDraftListQuery = gql`
${fragmentAddress}
query OrderDraftList(
$first: Int
$after: String
$last: Int
$before: String
$filter: OrderDraftFilterInput
) {
draftOrders(
before: $before
after: $after
first: $first
last: $last
filter: $filter
) {
edges {
node {
__typename
billingAddress {
...AddressFragment
}
created
id
number
paymentStatus
status
total {
__typename
gross {
__typename
amount
currency
}
}
userEmail
}
}
pageInfo {
hasPreviousPage
hasNextPage
startCursor
endCursor
}
}
}
`;
export const TypedOrderDraftListQuery = TypedQuery<
OrderDraftList,
OrderDraftListVariables
>(orderDraftListQuery);
export const orderDetailsQuery = gql`
${fragmentOrderDetails}
query OrderDetails($id: ID!) {
order(id: $id) {
...OrderDetailsFragment
}
shop {
countries {
code
country
}
defaultWeightUnit
}
}
`;
export const TypedOrderDetailsQuery = TypedQuery<
OrderDetails,
OrderDetailsVariables
>(orderDetailsQuery);
export const searchOrderVariant = gql`
query SearchOrderVariant($first: Int!, $query: String!, $after: String) {
products(query: $query, first: $first, after: $after) {
edges {
node {
id
name
thumbnail {
url
}
variants {
id
name
sku
price {
amount
currency
}
}
}
}
pageInfo {
endCursor
hasNextPage
hasPreviousPage
startCursor
}
}
}
`;
export const SearchOrderVariant = BaseSearch<
SearchOrderVariantType,
SearchOrderVariantVariables
>(searchOrderVariant);