mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-17 21:30:31 +00:00
fix(Setup): fix organization setup.
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import { useMutation, useQueryClient } from 'react-query';
|
||||
import { useQueryTenant, useRequestQuery } from '../useQueryRequest';
|
||||
import { useRequestQuery } from '../useQueryRequest';
|
||||
import useApiRequest from '../useRequest';
|
||||
import t from './types';
|
||||
|
||||
@@ -24,9 +24,7 @@ export function useAccounts(query, props) {
|
||||
[t.ACCOUNTS, query],
|
||||
{ method: 'get', url: 'accounts', params: query },
|
||||
{
|
||||
select: (response) => {
|
||||
return response.data.accounts;
|
||||
},
|
||||
select: (res) => res.data.accounts,
|
||||
defaultData: [],
|
||||
...props,
|
||||
},
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import { useEffect } from 'react';
|
||||
import { useMutation } from 'react-query';
|
||||
import useApiRequest from '../useRequest';
|
||||
import { useAuthActions } from '../state';
|
||||
@@ -10,20 +9,16 @@ export const useAuthLogin = (props) => {
|
||||
const { setLogin } = useAuthActions();
|
||||
const apiRequest = useApiRequest();
|
||||
|
||||
const states = useMutation(
|
||||
return useMutation(
|
||||
(values) => apiRequest.post('auth/login', values),
|
||||
{
|
||||
select: (res) => res.data,
|
||||
onSuccess: (data) => {
|
||||
setLogin(data.data);
|
||||
},
|
||||
...props
|
||||
}
|
||||
);
|
||||
const { isSuccess, data: response } = states;
|
||||
|
||||
useEffect(() => {
|
||||
if (isSuccess) { setLogin(response.data); }
|
||||
}, [isSuccess, response, setLogin]);
|
||||
|
||||
return states;
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
@@ -21,3 +21,5 @@ export * from './users';
|
||||
export * from './invite';
|
||||
export * from './exchangeRates';
|
||||
export * from './contacts';
|
||||
export * from './subscriptions';
|
||||
export * from './organization';
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import { useMutation } from 'react-query';
|
||||
import { useMutation, useQueryClient } from 'react-query';
|
||||
import { batch } from 'react-redux';
|
||||
import t from './types';
|
||||
import useApiRequest from '../useRequest';
|
||||
import { useRequestQuery } from '../useQueryRequest';
|
||||
import { useEffect } from 'react';
|
||||
import { useSetOrganizations, useSetSubscriptions } from '../state';
|
||||
import { omit } from 'lodash';
|
||||
|
||||
@@ -33,29 +33,26 @@ export function useCurrentOrganization(props) {
|
||||
const setOrganizations = useSetOrganizations();
|
||||
const setSubscriptions = useSetSubscriptions();
|
||||
|
||||
const query = useRequestQuery(
|
||||
return useRequestQuery(
|
||||
[t.ORGANIZATION_CURRENT],
|
||||
{ method: 'get', url: `organization/current` },
|
||||
{
|
||||
select: (res) => res.data.organization,
|
||||
defaultData: {},
|
||||
onSuccess: (data) => {
|
||||
const organization = omit(data, ['subscriptions']);
|
||||
|
||||
batch(() => {
|
||||
// Sets subscriptions.
|
||||
setSubscriptions(data.subscriptions);
|
||||
|
||||
// Sets organizations.
|
||||
setOrganizations([organization]);
|
||||
});
|
||||
},
|
||||
...props,
|
||||
},
|
||||
);
|
||||
|
||||
useEffect(() => {
|
||||
if (query.isSuccess) {
|
||||
const organization = omit(query.data, ['subscriptions']);
|
||||
|
||||
// Sets organizations.
|
||||
setOrganizations([organization]);
|
||||
|
||||
// Sets subscriptions.
|
||||
setSubscriptions(query.data.subscriptions);
|
||||
}
|
||||
}, [query.data, query.isSuccess, setOrganizations, setSubscriptions]);
|
||||
|
||||
return query;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -63,30 +60,46 @@ export function useCurrentOrganization(props) {
|
||||
*/
|
||||
export function useBuildTenant(props) {
|
||||
const apiRequest = useApiRequest();
|
||||
const queryClient = useQueryClient();
|
||||
|
||||
return useMutation(
|
||||
(values) => apiRequest.post('organization/build'),
|
||||
{
|
||||
onSuccess: (res, values) => {
|
||||
|
||||
},
|
||||
...props,
|
||||
return useMutation((values) => apiRequest.post('organization/build'), {
|
||||
onSuccess: (res, values) => {
|
||||
queryClient.invalidateQueries(t.ORGANIZATION_CURRENT);
|
||||
queryClient.invalidateQueries(t.ORGANIZATIONS);
|
||||
},
|
||||
);
|
||||
};
|
||||
...props,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Seeds the current tenant
|
||||
*/
|
||||
export function useSeedTenant() {
|
||||
const apiRequest = useApiRequest();
|
||||
const queryClient = useQueryClient();
|
||||
|
||||
return useMutation((values) => apiRequest.post('organization/seed'), {
|
||||
onSuccess: (res) => {
|
||||
queryClient.invalidateQueries(t.ORGANIZATION_CURRENT);
|
||||
queryClient.invalidateQueries(t.ORGANIZATIONS);
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Organization setup.
|
||||
*/
|
||||
export function useOrganizationSetup() {
|
||||
const apiRequest = useApiRequest();
|
||||
const queryClient = useQueryClient();
|
||||
|
||||
return useMutation(
|
||||
(values) => apiRequest.post('organization/seed'),
|
||||
(values) => apiRequest.post(`setup/organization`, values),
|
||||
{
|
||||
onSuccess: (res) => {
|
||||
|
||||
queryClient.invalidateQueries(t.ORGANIZATION_CURRENT);
|
||||
queryClient.invalidateQueries(t.ORGANIZATIONS);
|
||||
},
|
||||
}
|
||||
)
|
||||
};
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
44
client/src/hooks/query/subscriptions.js
Normal file
44
client/src/hooks/query/subscriptions.js
Normal file
@@ -0,0 +1,44 @@
|
||||
import { useEffect } from "react"
|
||||
import { useMutation, useQueryClient } from "react-query";
|
||||
import { useRequestQuery } from "../useQueryRequest";
|
||||
import useApiRequest from "../useRequest";
|
||||
import { useSetSubscriptions } from '../state/subscriptions';
|
||||
import T from './types';
|
||||
|
||||
/**
|
||||
* Subscription payment via voucher.
|
||||
*/
|
||||
export const usePaymentByVoucher = (props) => {
|
||||
const apiRequest = useApiRequest();
|
||||
const queryClient = useQueryClient();
|
||||
|
||||
return useMutation(
|
||||
(values) => apiRequest.post('subscription/license/payment', values),
|
||||
{
|
||||
onSuccess: () => {
|
||||
queryClient.invalidateQueries(T.SUBSCRIPTIONS);
|
||||
queryClient.invalidateQueries(T.ORGANIZATION_CURRENT);
|
||||
queryClient.invalidateQueries(T.ORGANIZATIONS);
|
||||
},
|
||||
...props,
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetches the organization subscriptions.
|
||||
*/
|
||||
export const useOrganizationSubscriptions = (props) => {
|
||||
const setSubscriptions = useSetSubscriptions();
|
||||
|
||||
const state = useRequestQuery(
|
||||
[T.SUBSCRIPTIONS],
|
||||
{ method: 'get', url: 'subscriptions' },
|
||||
{ ...props },
|
||||
);
|
||||
useEffect(() => {
|
||||
if (state.isSuccess) {
|
||||
setSubscriptions(state.data);
|
||||
}
|
||||
}, [state.isSuccess, state.data, setSubscriptions])
|
||||
};
|
||||
@@ -94,6 +94,10 @@ const ORGANIZATIONS = {
|
||||
ORGANIZATION_CURRENT: 'ORGANIZATION_CURRENT',
|
||||
};
|
||||
|
||||
const SUBSCRIPTIONS = {
|
||||
SUBSCRIPTIONS: 'SUBSCRIPTIONS',
|
||||
}
|
||||
|
||||
export default {
|
||||
...ACCOUNTS,
|
||||
...BILLS,
|
||||
@@ -111,4 +115,5 @@ export default {
|
||||
...USERS,
|
||||
...SETTING,
|
||||
...ORGANIZATIONS,
|
||||
...SUBSCRIPTIONS
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user