diff --git a/packages/backend/src/graphql/queries/get-invoices.ee.js b/packages/backend/src/graphql/queries/get-invoices.ee.js deleted file mode 100644 index afb7d031..00000000 --- a/packages/backend/src/graphql/queries/get-invoices.ee.js +++ /dev/null @@ -1,19 +0,0 @@ -import Billing from '../../helpers/billing/index.ee.js'; - -const getInvoices = async (_parent, _params, context) => { - const subscription = await context.currentUser.$relatedQuery( - 'currentSubscription' - ); - - if (!subscription) { - return; - } - - const invoices = await Billing.paddleClient.getInvoices( - Number(subscription.paddleSubscriptionId) - ); - - return invoices; -}; - -export default getInvoices; diff --git a/packages/backend/src/graphql/query-resolvers.js b/packages/backend/src/graphql/query-resolvers.js index dc0eb649..2e085efa 100644 --- a/packages/backend/src/graphql/query-resolvers.js +++ b/packages/backend/src/graphql/query-resolvers.js @@ -9,7 +9,6 @@ import getDynamicData from './queries/get-dynamic-data.js'; import getDynamicFields from './queries/get-dynamic-fields.js'; import getFlow from './queries/get-flow.js'; import getFlows from './queries/get-flows.js'; -import getInvoices from './queries/get-invoices.ee.js'; import getNotifications from './queries/get-notifications.js'; import getPermissionCatalog from './queries/get-permission-catalog.ee.js'; import getRole from './queries/get-role.ee.js'; @@ -37,7 +36,6 @@ const queryResolvers = { getDynamicFields, getFlow, getFlows, - getInvoices, getNotifications, getPermissionCatalog, getRole, diff --git a/packages/backend/src/graphql/schema.graphql b/packages/backend/src/graphql/schema.graphql index 9ccd9088..099dbd23 100644 --- a/packages/backend/src/graphql/schema.graphql +++ b/packages/backend/src/graphql/schema.graphql @@ -26,7 +26,6 @@ type Query { getBillingAndUsage: GetBillingAndUsage getCurrentUser: User getConfig(keys: [String]): JSONObject - getInvoices: [Invoice] getPermissionCatalog: PermissionCatalog getRole(id: String!): Role getRoles: [Role] @@ -658,14 +657,6 @@ type Usage { task: Int } -type Invoice { - id: Int - amount: Float - currency: String - payout_date: String - receipt_url: String -} - type ListSamlAuthProvider { id: String name: String diff --git a/packages/web/src/components/Invoices/index.ee.jsx b/packages/web/src/components/Invoices/index.ee.jsx index d4e15654..a3fa6bfa 100644 --- a/packages/web/src/components/Invoices/index.ee.jsx +++ b/packages/web/src/components/Invoices/index.ee.jsx @@ -7,12 +7,17 @@ import CardContent from '@mui/material/CardContent'; import Divider from '@mui/material/Divider'; import Grid from '@mui/material/Grid'; import Typography from '@mui/material/Typography'; + import useInvoices from 'hooks/useInvoices.ee'; import useFormatMessage from 'hooks/useFormatMessage'; + export default function Invoices() { const formatMessage = useFormatMessage(); - const { invoices, loading } = useInvoices(); - if (loading || invoices.length === 0) return ; + const { data, isLoading: isInvoicesLoading } = useInvoices(); + const invoices = data?.data; + + if (isInvoicesLoading || invoices?.length === 0) return ; + return ( @@ -47,7 +52,7 @@ export default function Invoices() { - {invoices.map((invoice, invoiceIndex) => ( + {invoices?.map((invoice, invoiceIndex) => ( {invoiceIndex !== 0 && } diff --git a/packages/web/src/graphql/queries/get-invoices.ee.js b/packages/web/src/graphql/queries/get-invoices.ee.js deleted file mode 100644 index b412a057..00000000 --- a/packages/web/src/graphql/queries/get-invoices.ee.js +++ /dev/null @@ -1,12 +0,0 @@ -import { gql } from '@apollo/client'; -export const GET_INVOICES = gql` - query GetInvoices { - getInvoices { - id - amount - currency - payout_date - receipt_url - } - } -`; diff --git a/packages/web/src/hooks/useInvoices.ee.js b/packages/web/src/hooks/useInvoices.ee.js index fb78a087..82372df4 100644 --- a/packages/web/src/hooks/useInvoices.ee.js +++ b/packages/web/src/hooks/useInvoices.ee.js @@ -1,9 +1,18 @@ -import { useQuery } from '@apollo/client'; -import { GET_INVOICES } from 'graphql/queries/get-invoices.ee'; +import { useQuery } from '@tanstack/react-query'; + +import api from 'helpers/api'; + export default function useInvoices() { - const { data, loading } = useQuery(GET_INVOICES); - return { - invoices: data?.getInvoices || [], - loading: loading, - }; + const query = useQuery({ + queryKey: ['invoices'], + queryFn: async ({ signal }) => { + const { data } = await api.get('/v1/users/invoices', { + signal, + }); + + return data; + }, + }); + + return query; }