mirror of
https://github.com/mayswind/ezbookkeeping.git
synced 2026-05-21 02:04:26 +08:00
code refactor
This commit is contained in:
+40
-40
@@ -200,30 +200,30 @@ export default {
|
|||||||
authorize: (data: UserLoginRequest): ApiResponsePromise<AuthResponse> => {
|
authorize: (data: UserLoginRequest): ApiResponsePromise<AuthResponse> => {
|
||||||
return axios.post<ApiResponse<AuthResponse>>('authorize.json', data);
|
return axios.post<ApiResponse<AuthResponse>>('authorize.json', data);
|
||||||
},
|
},
|
||||||
authorize2FA: (req: { passcode: string, token: string }): ApiResponsePromise<AuthResponse> => {
|
authorize2FA: ({ passcode, token }: { passcode: string, token: string }): ApiResponsePromise<AuthResponse> => {
|
||||||
return axios.post<ApiResponse<AuthResponse>>('2fa/authorize.json', {
|
return axios.post<ApiResponse<AuthResponse>>('2fa/authorize.json', {
|
||||||
passcode: req.passcode
|
passcode: passcode
|
||||||
}, {
|
}, {
|
||||||
headers: {
|
headers: {
|
||||||
Authorization: `Bearer ${req.token}`
|
Authorization: `Bearer ${token}`
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
authorize2FAByBackupCode: (req: { recoveryCode: string, token: string }): ApiResponsePromise<AuthResponse> => {
|
authorize2FAByBackupCode: ({ recoveryCode, token }: { recoveryCode: string, token: string }): ApiResponsePromise<AuthResponse> => {
|
||||||
return axios.post<ApiResponse<AuthResponse>>('2fa/recovery.json', {
|
return axios.post<ApiResponse<AuthResponse>>('2fa/recovery.json', {
|
||||||
recoveryCode: req.recoveryCode
|
recoveryCode: recoveryCode
|
||||||
}, {
|
}, {
|
||||||
headers: {
|
headers: {
|
||||||
Authorization: `Bearer ${req.token}`
|
Authorization: `Bearer ${token}`
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
register: (req: UserRegisterRequest): ApiResponsePromise<RegisterResponse> => {
|
register: (req: UserRegisterRequest): ApiResponsePromise<RegisterResponse> => {
|
||||||
return axios.post<ApiResponse<RegisterResponse>>('register.json', req);
|
return axios.post<ApiResponse<RegisterResponse>>('register.json', req);
|
||||||
},
|
},
|
||||||
verifyEmail: (req: { token: string, requestNewToken: boolean }): ApiResponsePromise<UserVerifyEmailResponse> => {
|
verifyEmail: ({ token, requestNewToken }: { token: string, requestNewToken: boolean }): ApiResponsePromise<UserVerifyEmailResponse> => {
|
||||||
return axios.post<ApiResponse<UserVerifyEmailResponse>>('verify_email/by_token.json?token=' + req.token, {
|
return axios.post<ApiResponse<UserVerifyEmailResponse>>('verify_email/by_token.json?token=' + token, {
|
||||||
requestNewToken: req.requestNewToken
|
requestNewToken: requestNewToken
|
||||||
}, {
|
}, {
|
||||||
noAuth: true,
|
noAuth: true,
|
||||||
ignoreError: true
|
ignoreError: true
|
||||||
@@ -235,10 +235,10 @@ export default {
|
|||||||
requestResetPassword: (req: ForgetPasswordRequest): ApiResponsePromise<boolean> => {
|
requestResetPassword: (req: ForgetPasswordRequest): ApiResponsePromise<boolean> => {
|
||||||
return axios.post<ApiResponse<boolean>>('forget_password/request.json', req);
|
return axios.post<ApiResponse<boolean>>('forget_password/request.json', req);
|
||||||
},
|
},
|
||||||
resetPassword: (req: { email: string, token: string, password: string }): ApiResponsePromise<boolean> => {
|
resetPassword: ({ email, token, password }: { email: string, token: string, password: string }): ApiResponsePromise<boolean> => {
|
||||||
return axios.post<ApiResponse<boolean>>('forget_password/reset/by_token.json?token=' + req.token, {
|
return axios.post<ApiResponse<boolean>>('forget_password/reset/by_token.json?token=' + token, {
|
||||||
email: req.email,
|
email: email,
|
||||||
password: req.password
|
password: password
|
||||||
}, {
|
}, {
|
||||||
noAuth: true,
|
noAuth: true,
|
||||||
ignoreError: true
|
ignoreError: true
|
||||||
@@ -269,11 +269,11 @@ export default {
|
|||||||
getTokens: (): ApiResponsePromise<TokenInfoResponse[]> => {
|
getTokens: (): ApiResponsePromise<TokenInfoResponse[]> => {
|
||||||
return axios.get<ApiResponse<TokenInfoResponse[]>>('v1/tokens/list.json');
|
return axios.get<ApiResponse<TokenInfoResponse[]>>('v1/tokens/list.json');
|
||||||
},
|
},
|
||||||
revokeToken: (req: { tokenId: string, ignoreError?: boolean }): ApiResponsePromise<boolean> => {
|
revokeToken: ({ tokenId, ignoreError }: { tokenId: string, ignoreError?: boolean }): ApiResponsePromise<boolean> => {
|
||||||
return axios.post<ApiResponse<boolean>>('v1/tokens/revoke.json', {
|
return axios.post<ApiResponse<boolean>>('v1/tokens/revoke.json', {
|
||||||
tokenId: req.tokenId
|
tokenId: tokenId
|
||||||
}, {
|
}, {
|
||||||
ignoreError: !!req.ignoreError
|
ignoreError: !!ignoreError
|
||||||
} as ApiRequestConfig);
|
} as ApiRequestConfig);
|
||||||
},
|
},
|
||||||
revokeAllTokens: (): ApiResponsePromise<boolean> => {
|
revokeAllTokens: (): ApiResponsePromise<boolean> => {
|
||||||
@@ -285,9 +285,9 @@ export default {
|
|||||||
updateProfile: (req: UserProfileUpdateRequest): ApiResponsePromise<UserProfileUpdateResponse> => {
|
updateProfile: (req: UserProfileUpdateRequest): ApiResponsePromise<UserProfileUpdateResponse> => {
|
||||||
return axios.post<ApiResponse<UserProfileUpdateResponse>>('v1/users/profile/update.json', req);
|
return axios.post<ApiResponse<UserProfileUpdateResponse>>('v1/users/profile/update.json', req);
|
||||||
},
|
},
|
||||||
updateAvatar: (req: { avatarFile: unknown }): ApiResponsePromise<UserProfileResponse> => {
|
updateAvatar: ({ avatarFile }: { avatarFile: unknown }): ApiResponsePromise<UserProfileResponse> => {
|
||||||
return axios.postForm<ApiResponse<UserProfileResponse>>('v1/users/avatar/update.json', {
|
return axios.postForm<ApiResponse<UserProfileResponse>>('v1/users/avatar/update.json', {
|
||||||
avatar: req.avatarFile
|
avatar: avatarFile
|
||||||
}, {
|
}, {
|
||||||
timeout: DEFAULT_UPLOAD_API_TIMEOUT
|
timeout: DEFAULT_UPLOAD_API_TIMEOUT
|
||||||
});
|
});
|
||||||
@@ -328,11 +328,11 @@ export default {
|
|||||||
clearData: (req: ClearDataRequest): ApiResponsePromise<boolean> => {
|
clearData: (req: ClearDataRequest): ApiResponsePromise<boolean> => {
|
||||||
return axios.post<ApiResponse<boolean>>('v1/data/clear.json', req);
|
return axios.post<ApiResponse<boolean>>('v1/data/clear.json', req);
|
||||||
},
|
},
|
||||||
getAllAccounts: (req: { visibleOnly: boolean }): ApiResponsePromise<AccountInfoResponse[]> => {
|
getAllAccounts: ({ visibleOnly }: { visibleOnly: boolean }): ApiResponsePromise<AccountInfoResponse[]> => {
|
||||||
return axios.get<ApiResponse<AccountInfoResponse[]>>('v1/accounts/list.json?visible_only=' + req.visibleOnly);
|
return axios.get<ApiResponse<AccountInfoResponse[]>>('v1/accounts/list.json?visible_only=' + visibleOnly);
|
||||||
},
|
},
|
||||||
getAccount: (req: { id: string }): ApiResponsePromise<AccountInfoResponse> => {
|
getAccount: ({ id }: { id: string }): ApiResponsePromise<AccountInfoResponse> => {
|
||||||
return axios.get<ApiResponse<AccountInfoResponse>>('v1/accounts/get.json?id=' + req.id);
|
return axios.get<ApiResponse<AccountInfoResponse>>('v1/accounts/get.json?id=' + id);
|
||||||
},
|
},
|
||||||
addAccount: (req: AccountCreateRequest): ApiResponsePromise<AccountInfoResponse> => {
|
addAccount: (req: AccountCreateRequest): ApiResponsePromise<AccountInfoResponse> => {
|
||||||
return axios.post<ApiResponse<AccountInfoResponse>>('v1/accounts/add.json', req);
|
return axios.post<ApiResponse<AccountInfoResponse>>('v1/accounts/add.json', req);
|
||||||
@@ -405,12 +405,12 @@ export default {
|
|||||||
const req = TransactionAmountsRequest.of(params);
|
const req = TransactionAmountsRequest.of(params);
|
||||||
return axios.get<ApiResponse<TransactionAmountsResponse>>(`v1/transactions/amounts.json?${req.buildQuery()}`);
|
return axios.get<ApiResponse<TransactionAmountsResponse>>(`v1/transactions/amounts.json?${req.buildQuery()}`);
|
||||||
},
|
},
|
||||||
getTransaction: (req: { id: string, withPictures: boolean | undefined }): ApiResponsePromise<TransactionInfoResponse> => {
|
getTransaction: ({ id, withPictures }: { id: string, withPictures: boolean | undefined }): ApiResponsePromise<TransactionInfoResponse> => {
|
||||||
if (!isDefined(req.withPictures)) {
|
if (!isDefined(withPictures)) {
|
||||||
req.withPictures = true;
|
withPictures = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
return axios.get<ApiResponse<TransactionInfoResponse>>(`v1/transactions/get.json?id=${req.id}&with_pictures=${req.withPictures}&trim_account=true&trim_category=true&trim_tag=true`);
|
return axios.get<ApiResponse<TransactionInfoResponse>>(`v1/transactions/get.json?id=${id}&with_pictures=${withPictures}&trim_account=true&trim_category=true&trim_tag=true`);
|
||||||
},
|
},
|
||||||
addTransaction: (req: TransactionCreateRequest): ApiResponsePromise<TransactionInfoResponse> => {
|
addTransaction: (req: TransactionCreateRequest): ApiResponsePromise<TransactionInfoResponse> => {
|
||||||
return axios.post<ApiResponse<TransactionInfoResponse>>('v1/transactions/add.json', req);
|
return axios.post<ApiResponse<TransactionInfoResponse>>('v1/transactions/add.json', req);
|
||||||
@@ -421,10 +421,10 @@ export default {
|
|||||||
deleteTransaction: (req: TransactionDeleteRequest): ApiResponsePromise<boolean> => {
|
deleteTransaction: (req: TransactionDeleteRequest): ApiResponsePromise<boolean> => {
|
||||||
return axios.post<ApiResponse<boolean>>('v1/transactions/delete.json', req);
|
return axios.post<ApiResponse<boolean>>('v1/transactions/delete.json', req);
|
||||||
},
|
},
|
||||||
parseImportTransaction: (req: { fileType: string, importFile: unknown }): ApiResponsePromise<ImportTransactionResponsePageWrapper> => {
|
parseImportTransaction: ({ fileType, importFile }: { fileType: string, importFile: unknown }): ApiResponsePromise<ImportTransactionResponsePageWrapper> => {
|
||||||
return axios.postForm<ApiResponse<ImportTransactionResponsePageWrapper>>('v1/transactions/parse_import.json', {
|
return axios.postForm<ApiResponse<ImportTransactionResponsePageWrapper>>('v1/transactions/parse_import.json', {
|
||||||
fileType: req.fileType,
|
fileType: fileType,
|
||||||
file: req.importFile
|
file: importFile
|
||||||
}, {
|
}, {
|
||||||
timeout: DEFAULT_UPLOAD_API_TIMEOUT
|
timeout: DEFAULT_UPLOAD_API_TIMEOUT
|
||||||
} as ApiRequestConfig);
|
} as ApiRequestConfig);
|
||||||
@@ -434,10 +434,10 @@ export default {
|
|||||||
timeout: DEFAULT_IMPORT_API_TIMEOUT
|
timeout: DEFAULT_IMPORT_API_TIMEOUT
|
||||||
} as ApiRequestConfig);
|
} as ApiRequestConfig);
|
||||||
},
|
},
|
||||||
uploadTransactionPicture: (req: { pictureFile: unknown, clientSessionId: string }): ApiResponsePromise<TransactionPictureInfoBasicResponse> => {
|
uploadTransactionPicture: ({ pictureFile, clientSessionId }: { pictureFile: unknown, clientSessionId: string }): ApiResponsePromise<TransactionPictureInfoBasicResponse> => {
|
||||||
return axios.postForm<ApiResponse<TransactionPictureInfoBasicResponse>>('v1/transaction/pictures/upload.json', {
|
return axios.postForm<ApiResponse<TransactionPictureInfoBasicResponse>>('v1/transaction/pictures/upload.json', {
|
||||||
picture: req.pictureFile,
|
picture: pictureFile,
|
||||||
clientSessionId: req.clientSessionId
|
clientSessionId: clientSessionId
|
||||||
}, {
|
}, {
|
||||||
timeout: DEFAULT_UPLOAD_API_TIMEOUT
|
timeout: DEFAULT_UPLOAD_API_TIMEOUT
|
||||||
} as ApiRequestConfig);
|
} as ApiRequestConfig);
|
||||||
@@ -448,8 +448,8 @@ export default {
|
|||||||
getAllTransactionCategories: (): ApiResponsePromise<Record<number, TransactionCategoryInfoResponse[]>> => {
|
getAllTransactionCategories: (): ApiResponsePromise<Record<number, TransactionCategoryInfoResponse[]>> => {
|
||||||
return axios.get<ApiResponse<Record<number, TransactionCategoryInfoResponse[]>>>('v1/transaction/categories/list.json');
|
return axios.get<ApiResponse<Record<number, TransactionCategoryInfoResponse[]>>>('v1/transaction/categories/list.json');
|
||||||
},
|
},
|
||||||
getTransactionCategory: (req: { id: string }): ApiResponsePromise<TransactionCategoryInfoResponse> => {
|
getTransactionCategory: ({ id }: { id: string }): ApiResponsePromise<TransactionCategoryInfoResponse> => {
|
||||||
return axios.get<ApiResponse<TransactionCategoryInfoResponse>>('v1/transaction/categories/get.json?id=' + req.id);
|
return axios.get<ApiResponse<TransactionCategoryInfoResponse>>('v1/transaction/categories/get.json?id=' + id);
|
||||||
},
|
},
|
||||||
addTransactionCategory: (req: TransactionCategoryCreateRequest): ApiResponsePromise<TransactionCategoryInfoResponse> => {
|
addTransactionCategory: (req: TransactionCategoryCreateRequest): ApiResponsePromise<TransactionCategoryInfoResponse> => {
|
||||||
return axios.post<ApiResponse<TransactionCategoryInfoResponse>>('v1/transaction/categories/add.json', req);
|
return axios.post<ApiResponse<TransactionCategoryInfoResponse>>('v1/transaction/categories/add.json', req);
|
||||||
@@ -472,8 +472,8 @@ export default {
|
|||||||
getAllTransactionTags: (): ApiResponsePromise<TransactionTagInfoResponse[]> => {
|
getAllTransactionTags: (): ApiResponsePromise<TransactionTagInfoResponse[]> => {
|
||||||
return axios.get<ApiResponse<TransactionTagInfoResponse[]>>('v1/transaction/tags/list.json');
|
return axios.get<ApiResponse<TransactionTagInfoResponse[]>>('v1/transaction/tags/list.json');
|
||||||
},
|
},
|
||||||
getTransactionTag: (req: { id: string }): ApiResponsePromise<TransactionTagInfoResponse> => {
|
getTransactionTag: ({ id }: { id: string }): ApiResponsePromise<TransactionTagInfoResponse> => {
|
||||||
return axios.get<ApiResponse<TransactionTagInfoResponse>>('v1/transaction/tags/get.json?id=' + req.id);
|
return axios.get<ApiResponse<TransactionTagInfoResponse>>('v1/transaction/tags/get.json?id=' + id);
|
||||||
},
|
},
|
||||||
addTransactionTag: (req: TransactionTagCreateRequest): ApiResponsePromise<TransactionTagInfoResponse> => {
|
addTransactionTag: (req: TransactionTagCreateRequest): ApiResponsePromise<TransactionTagInfoResponse> => {
|
||||||
return axios.post<ApiResponse<TransactionTagInfoResponse>>('v1/transaction/tags/add.json', req);
|
return axios.post<ApiResponse<TransactionTagInfoResponse>>('v1/transaction/tags/add.json', req);
|
||||||
@@ -490,11 +490,11 @@ export default {
|
|||||||
deleteTransactionTag: (req: TransactionTagDeleteRequest): ApiResponsePromise<boolean> => {
|
deleteTransactionTag: (req: TransactionTagDeleteRequest): ApiResponsePromise<boolean> => {
|
||||||
return axios.post<ApiResponse<boolean>>('v1/transaction/tags/delete.json', req);
|
return axios.post<ApiResponse<boolean>>('v1/transaction/tags/delete.json', req);
|
||||||
},
|
},
|
||||||
getAllTransactionTemplates: (req: { templateType: number }): ApiResponsePromise<TransactionTemplateInfoResponse[]> => {
|
getAllTransactionTemplates: ({ templateType }: { templateType: number }): ApiResponsePromise<TransactionTemplateInfoResponse[]> => {
|
||||||
return axios.get<ApiResponse<TransactionTemplateInfoResponse[]>>('v1/transaction/templates/list.json?templateType=' + req.templateType);
|
return axios.get<ApiResponse<TransactionTemplateInfoResponse[]>>('v1/transaction/templates/list.json?templateType=' + templateType);
|
||||||
},
|
},
|
||||||
getTransactionTemplate: (req: { id: string }): ApiResponsePromise<TransactionTemplateInfoResponse> => {
|
getTransactionTemplate: ({ id }: { id: string }): ApiResponsePromise<TransactionTemplateInfoResponse> => {
|
||||||
return axios.get<ApiResponse<TransactionTemplateInfoResponse>>('v1/transaction/templates/get.json?id=' + req.id);
|
return axios.get<ApiResponse<TransactionTemplateInfoResponse>>('v1/transaction/templates/get.json?id=' + id);
|
||||||
},
|
},
|
||||||
addTransactionTemplate: (req: TransactionTemplateCreateRequest): ApiResponsePromise<TransactionTemplateInfoResponse> => {
|
addTransactionTemplate: (req: TransactionTemplateCreateRequest): ApiResponsePromise<TransactionTemplateInfoResponse> => {
|
||||||
return axios.post<ApiResponse<TransactionTemplateInfoResponse>>('v1/transaction/templates/add.json', req);
|
return axios.post<ApiResponse<TransactionTemplateInfoResponse>>('v1/transaction/templates/add.json', req);
|
||||||
|
|||||||
@@ -59,11 +59,11 @@ export const useExchangeRatesStore = defineStore('exchangeRates', () => {
|
|||||||
clearExchangeRatesFromLocalStorage();
|
clearExchangeRatesFromLocalStorage();
|
||||||
}
|
}
|
||||||
|
|
||||||
function getLatestExchangeRates(req: { silent: boolean, force: boolean }): Promise<LatestExchangeRateResponse> {
|
function getLatestExchangeRates({ silent, force }: { silent: boolean, force: boolean }): Promise<LatestExchangeRateResponse> {
|
||||||
const currentExchangeRateData = latestExchangeRates.value;
|
const currentExchangeRateData = latestExchangeRates.value;
|
||||||
const now = getCurrentUnixTime();
|
const now = getCurrentUnixTime();
|
||||||
|
|
||||||
if (!req.force) {
|
if (!force) {
|
||||||
if (currentExchangeRateData && currentExchangeRateData.time && currentExchangeRateData.data &&
|
if (currentExchangeRateData && currentExchangeRateData.time && currentExchangeRateData.data &&
|
||||||
formatUnixTime(currentExchangeRateData.data.updateTime, 'YYYY-MM-DD') === formatUnixTime(now, 'YYYY-MM-DD')) {
|
formatUnixTime(currentExchangeRateData.data.updateTime, 'YYYY-MM-DD') === formatUnixTime(now, 'YYYY-MM-DD')) {
|
||||||
return Promise.resolve(currentExchangeRateData.data);
|
return Promise.resolve(currentExchangeRateData.data);
|
||||||
@@ -77,7 +77,7 @@ export const useExchangeRatesStore = defineStore('exchangeRates', () => {
|
|||||||
|
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
services.getLatestExchangeRates({
|
services.getLatestExchangeRates({
|
||||||
ignoreError: req.silent
|
ignoreError: silent
|
||||||
}).then(response => {
|
}).then(response => {
|
||||||
const data = response.data;
|
const data = response.data;
|
||||||
|
|
||||||
@@ -88,7 +88,7 @@ export const useExchangeRatesStore = defineStore('exchangeRates', () => {
|
|||||||
|
|
||||||
const currentData = getExchangeRatesFromLocalStorage();
|
const currentData = getExchangeRatesFromLocalStorage();
|
||||||
|
|
||||||
if (req.force && currentData && currentData.data && isEquals(currentData.data, data.result)) {
|
if (force && currentData && currentData.data && isEquals(currentData.data, data.result)) {
|
||||||
reject({ message: 'Exchange rates data is up to date' });
|
reject({ message: 'Exchange rates data is up to date' });
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -276,7 +276,7 @@ export const useOverviewStore = defineStore('overview', () => {
|
|||||||
transactionOverviewStateInvalid.value = true;
|
transactionOverviewStateInvalid.value = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
function loadTransactionOverview(params: { force: boolean, loadLast11Months: boolean }): Promise<TransactionAmountsResponse> {
|
function loadTransactionOverview({ force, loadLast11Months }: { force: boolean, loadLast11Months: boolean }): Promise<TransactionAmountsResponse> {
|
||||||
let dateChanged = false;
|
let dateChanged = false;
|
||||||
let rangeChanged = false;
|
let rangeChanged = false;
|
||||||
|
|
||||||
@@ -285,11 +285,11 @@ export const useOverviewStore = defineStore('overview', () => {
|
|||||||
updateTransactionDateRange();
|
updateTransactionDateRange();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (params.loadLast11Months && !transactionOverviewOptions.value.loadLast11Months) {
|
if (loadLast11Months && !transactionOverviewOptions.value.loadLast11Months) {
|
||||||
rangeChanged = true;
|
rangeChanged = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!dateChanged && !rangeChanged && !params.force && !transactionOverviewStateInvalid.value) {
|
if (!dateChanged && !rangeChanged && !force && !transactionOverviewStateInvalid.value) {
|
||||||
return new Promise((resolve) => {
|
return new Promise((resolve) => {
|
||||||
resolve(transactionOverviewData.value);
|
resolve(transactionOverviewData.value);
|
||||||
});
|
});
|
||||||
@@ -303,7 +303,7 @@ export const useOverviewStore = defineStore('overview', () => {
|
|||||||
thisYear: transactionDataRange.value.thisYear
|
thisYear: transactionDataRange.value.thisYear
|
||||||
};
|
};
|
||||||
|
|
||||||
if (params.loadLast11Months) {
|
if (loadLast11Months) {
|
||||||
requestParams.lastMonth = transactionDataRange.value.lastMonth;
|
requestParams.lastMonth = transactionDataRange.value.lastMonth;
|
||||||
requestParams.monthBeforeLastMonth = transactionDataRange.value.monthBeforeLastMonth;
|
requestParams.monthBeforeLastMonth = transactionDataRange.value.monthBeforeLastMonth;
|
||||||
requestParams.monthBeforeLast2Months = transactionDataRange.value.monthBeforeLast2Months;
|
requestParams.monthBeforeLast2Months = transactionDataRange.value.monthBeforeLast2Months;
|
||||||
@@ -330,17 +330,17 @@ export const useOverviewStore = defineStore('overview', () => {
|
|||||||
updateTransactionOverviewInvalidState(false);
|
updateTransactionOverviewInvalidState(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (params.force && data.result && isEquals(transactionOverviewData.value, data.result)) {
|
if (force && data.result && isEquals(transactionOverviewData.value, data.result)) {
|
||||||
reject({ message: 'Data is up to date' });
|
reject({ message: 'Data is up to date' });
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
transactionOverviewData.value = data.result;
|
transactionOverviewData.value = data.result;
|
||||||
transactionOverviewOptions.value.loadLast11Months = params.loadLast11Months;
|
transactionOverviewOptions.value.loadLast11Months = loadLast11Months;
|
||||||
|
|
||||||
resolve(data.result);
|
resolve(data.result);
|
||||||
}).catch(error => {
|
}).catch(error => {
|
||||||
if (params.force) {
|
if (force) {
|
||||||
logger.error('failed to force load transaction overview', error);
|
logger.error('failed to force load transaction overview', error);
|
||||||
} else {
|
} else {
|
||||||
logger.error('failed to load transaction overview', error);
|
logger.error('failed to load transaction overview', error);
|
||||||
|
|||||||
+2
-5
@@ -62,12 +62,9 @@ export const useTokensStore = defineStore('tokens', () => {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function revokeToken(req: { tokenId: string, ignoreError?: boolean }): Promise<boolean> {
|
function revokeToken({ tokenId, ignoreError }: { tokenId: string, ignoreError?: boolean }): Promise<boolean> {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
services.revokeToken({
|
services.revokeToken({ tokenId, ignoreError }).then(response => {
|
||||||
tokenId: req.tokenId,
|
|
||||||
ignoreError: !!req.ignoreError
|
|
||||||
}).then(response => {
|
|
||||||
const data = response.data;
|
const data = response.data;
|
||||||
|
|
||||||
if (!data || !data.success || !data.result) {
|
if (!data || !data.success || !data.result) {
|
||||||
|
|||||||
@@ -94,23 +94,23 @@ export const useTransactionCategoriesStore = defineStore('transactionCategories'
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateCategoryDisplayOrderInCategoryList(params: { category: TransactionCategory, from: number, to: number }): void {
|
function updateCategoryDisplayOrderInCategoryList({ category, from, to }: { category: TransactionCategory, from: number, to: number }): void {
|
||||||
let categoryList: TransactionCategory[] | undefined = undefined;
|
let categoryList: TransactionCategory[] | undefined = undefined;
|
||||||
|
|
||||||
if (!params.category.parentId || params.category.parentId === '0') {
|
if (!category.parentId || category.parentId === '0') {
|
||||||
categoryList = allTransactionCategories.value[params.category.type];
|
categoryList = allTransactionCategories.value[category.type];
|
||||||
} else if (allTransactionCategoriesMap.value[params.category.parentId]) {
|
} else if (allTransactionCategoriesMap.value[category.parentId]) {
|
||||||
categoryList = allTransactionCategoriesMap.value[params.category.parentId].secondaryCategories;
|
categoryList = allTransactionCategoriesMap.value[category.parentId].secondaryCategories;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (categoryList) {
|
if (categoryList) {
|
||||||
categoryList.splice(params.to, 0, categoryList.splice(params.from, 1)[0]);
|
categoryList.splice(to, 0, categoryList.splice(from, 1)[0]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateCategoryVisibilityInTransactionCategoryList(params: { category: TransactionCategory, hidden: boolean }): void {
|
function updateCategoryVisibilityInTransactionCategoryList({ category, hidden }: { category: TransactionCategory, hidden: boolean }): void {
|
||||||
if (allTransactionCategoriesMap.value[params.category.id]) {
|
if (allTransactionCategoriesMap.value[category.id]) {
|
||||||
allTransactionCategoriesMap.value[params.category.id].visible = !params.hidden;
|
allTransactionCategoriesMap.value[category.id].visible = !hidden;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -160,8 +160,8 @@ export const useTransactionCategoriesStore = defineStore('transactionCategories'
|
|||||||
transactionCategoryListStateInvalid.value = true;
|
transactionCategoryListStateInvalid.value = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
function loadAllCategories(params: { force?: boolean }): Promise<Record<number, TransactionCategory[]>> {
|
function loadAllCategories({ force }: { force?: boolean }): Promise<Record<number, TransactionCategory[]>> {
|
||||||
if (!params.force && !transactionCategoryListStateInvalid.value) {
|
if (!force && !transactionCategoryListStateInvalid.value) {
|
||||||
return new Promise((resolve) => {
|
return new Promise((resolve) => {
|
||||||
resolve(allTransactionCategories.value);
|
resolve(allTransactionCategories.value);
|
||||||
});
|
});
|
||||||
@@ -194,7 +194,7 @@ export const useTransactionCategoriesStore = defineStore('transactionCategories'
|
|||||||
|
|
||||||
const transactionCategories = TransactionCategory.ofMap(data.result);
|
const transactionCategories = TransactionCategory.ofMap(data.result);
|
||||||
|
|
||||||
if (params.force && data.result && isEquals(allTransactionCategories.value, transactionCategories)) {
|
if (force && data.result && isEquals(allTransactionCategories.value, transactionCategories)) {
|
||||||
reject({ message: 'Category list is up to date' });
|
reject({ message: 'Category list is up to date' });
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -203,7 +203,7 @@ export const useTransactionCategoriesStore = defineStore('transactionCategories'
|
|||||||
|
|
||||||
resolve(transactionCategories);
|
resolve(transactionCategories);
|
||||||
}).catch(error => {
|
}).catch(error => {
|
||||||
if (params.force) {
|
if (force) {
|
||||||
logger.error('failed to force load category list', error);
|
logger.error('failed to force load category list', error);
|
||||||
} else {
|
} else {
|
||||||
logger.error('failed to load category list', error);
|
logger.error('failed to load category list', error);
|
||||||
@@ -220,10 +220,10 @@ export const useTransactionCategoriesStore = defineStore('transactionCategories'
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function getCategory(params: { categoryId: string }): Promise<TransactionCategory> {
|
function getCategory({ categoryId }: { categoryId: string }): Promise<TransactionCategory> {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
services.getTransactionCategory({
|
services.getTransactionCategory({
|
||||||
id: params.categoryId
|
id: categoryId
|
||||||
}).then(response => {
|
}).then(response => {
|
||||||
const data = response.data;
|
const data = response.data;
|
||||||
|
|
||||||
@@ -249,21 +249,21 @@ export const useTransactionCategoriesStore = defineStore('transactionCategories'
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function saveCategory(params: { category: TransactionCategory, isEdit: boolean, clientSessionId: string }): Promise<TransactionCategory> {
|
function saveCategory({ category, isEdit, clientSessionId }: { category: TransactionCategory, isEdit: boolean, clientSessionId: string }): Promise<TransactionCategory> {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
let promise: ApiResponsePromise<TransactionCategoryInfoResponse>;
|
let promise: ApiResponsePromise<TransactionCategoryInfoResponse>;
|
||||||
|
|
||||||
if (!params.isEdit) {
|
if (!isEdit) {
|
||||||
promise = services.addTransactionCategory(params.category.toCreateRequest(params.clientSessionId));
|
promise = services.addTransactionCategory(category.toCreateRequest(clientSessionId));
|
||||||
} else {
|
} else {
|
||||||
promise = services.modifyTransactionCategory(params.category.toModifyRequest());
|
promise = services.modifyTransactionCategory(category.toModifyRequest());
|
||||||
}
|
}
|
||||||
|
|
||||||
promise.then(response => {
|
promise.then(response => {
|
||||||
const data = response.data;
|
const data = response.data;
|
||||||
|
|
||||||
if (!data || !data.success || !data.result) {
|
if (!data || !data.success || !data.result) {
|
||||||
if (!params.isEdit) {
|
if (!isEdit) {
|
||||||
reject({ message: 'Unable to add category' });
|
reject({ message: 'Unable to add category' });
|
||||||
} else {
|
} else {
|
||||||
reject({ message: 'Unable to save category' });
|
reject({ message: 'Unable to save category' });
|
||||||
@@ -273,10 +273,10 @@ export const useTransactionCategoriesStore = defineStore('transactionCategories'
|
|||||||
|
|
||||||
const transactionCategory = TransactionCategory.of(data.result);
|
const transactionCategory = TransactionCategory.of(data.result);
|
||||||
|
|
||||||
if (!params.isEdit) {
|
if (!isEdit) {
|
||||||
addCategoryToTransactionCategoryList(transactionCategory);
|
addCategoryToTransactionCategoryList(transactionCategory);
|
||||||
} else {
|
} else {
|
||||||
const result = updateCategoryInTransactionCategoryList(transactionCategory, allTransactionCategoriesMap.value[params.category.id]);
|
const result = updateCategoryInTransactionCategoryList(transactionCategory, allTransactionCategoriesMap.value[category.id]);
|
||||||
|
|
||||||
if (!result && !transactionCategoryListStateInvalid.value) {
|
if (!result && !transactionCategoryListStateInvalid.value) {
|
||||||
updateTransactionCategoryListInvalidState(true);
|
updateTransactionCategoryListInvalidState(true);
|
||||||
@@ -290,7 +290,7 @@ export const useTransactionCategoriesStore = defineStore('transactionCategories'
|
|||||||
if (error.response && error.response.data && error.response.data.errorMessage) {
|
if (error.response && error.response.data && error.response.data.errorMessage) {
|
||||||
reject({ error: error.response.data });
|
reject({ error: error.response.data });
|
||||||
} else if (!error.processed) {
|
} else if (!error.processed) {
|
||||||
if (!params.isEdit) {
|
if (!isEdit) {
|
||||||
reject({ message: 'Unable to add category' });
|
reject({ message: 'Unable to add category' });
|
||||||
} else {
|
} else {
|
||||||
reject({ message: 'Unable to save category' });
|
reject({ message: 'Unable to save category' });
|
||||||
@@ -333,8 +333,8 @@ export const useTransactionCategoriesStore = defineStore('transactionCategories'
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function changeCategoryDisplayOrder(params: { categoryId: string, from: number, to: number }): Promise<void> {
|
function changeCategoryDisplayOrder({ categoryId, from, to }: { categoryId: string, from: number, to: number }): Promise<void> {
|
||||||
const category = allTransactionCategoriesMap.value[params.categoryId];
|
const category = allTransactionCategoriesMap.value[categoryId];
|
||||||
|
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
if (!category) {
|
if (!category) {
|
||||||
@@ -344,14 +344,14 @@ export const useTransactionCategoriesStore = defineStore('transactionCategories'
|
|||||||
|
|
||||||
if (!category.parentId || category.parentId === '0') {
|
if (!category.parentId || category.parentId === '0') {
|
||||||
if (!allTransactionCategories.value[category.type] ||
|
if (!allTransactionCategories.value[category.type] ||
|
||||||
!allTransactionCategories.value[category.type][params.to]) {
|
!allTransactionCategories.value[category.type][to]) {
|
||||||
reject({ message: 'Unable to move category' });
|
reject({ message: 'Unable to move category' });
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
const subCategoryList = allTransactionCategoriesMap.value[category.parentId].secondaryCategories;
|
const subCategoryList = allTransactionCategoriesMap.value[category.parentId].secondaryCategories;
|
||||||
|
|
||||||
if (!subCategoryList || !subCategoryList[params.to]) {
|
if (!subCategoryList || !subCategoryList[to]) {
|
||||||
reject({ message: 'Unable to move category' });
|
reject({ message: 'Unable to move category' });
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -361,25 +361,21 @@ export const useTransactionCategoriesStore = defineStore('transactionCategories'
|
|||||||
updateTransactionCategoryListInvalidState(true);
|
updateTransactionCategoryListInvalidState(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
updateCategoryDisplayOrderInCategoryList({
|
updateCategoryDisplayOrderInCategoryList({ category, from, to });
|
||||||
category: category,
|
|
||||||
from: params.from,
|
|
||||||
to: params.to
|
|
||||||
});
|
|
||||||
|
|
||||||
resolve();
|
resolve();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateCategoryDisplayOrders(params: { type: CategoryType, parentId: string }): Promise<boolean> {
|
function updateCategoryDisplayOrders({ type, parentId }: { type: CategoryType, parentId: string }): Promise<boolean> {
|
||||||
const newDisplayOrders: TransactionCategoryNewDisplayOrderRequest[] = [];
|
const newDisplayOrders: TransactionCategoryNewDisplayOrderRequest[] = [];
|
||||||
|
|
||||||
let categoryList: TransactionCategory[] | undefined = undefined;
|
let categoryList: TransactionCategory[] | undefined = undefined;
|
||||||
|
|
||||||
if (!params.parentId || params.parentId === '0') {
|
if (!parentId || parentId === '0') {
|
||||||
categoryList = allTransactionCategories.value[params.type];
|
categoryList = allTransactionCategories.value[type];
|
||||||
} else if (allTransactionCategoriesMap.value[params.parentId]) {
|
} else if (allTransactionCategoriesMap.value[parentId]) {
|
||||||
categoryList = allTransactionCategoriesMap.value[params.parentId].secondaryCategories;
|
categoryList = allTransactionCategoriesMap.value[parentId].secondaryCategories;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (categoryList) {
|
if (categoryList) {
|
||||||
@@ -421,16 +417,16 @@ export const useTransactionCategoriesStore = defineStore('transactionCategories'
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function hideCategory(params: { category: TransactionCategory, hidden: boolean }): Promise<boolean> {
|
function hideCategory({ category, hidden }: { category: TransactionCategory, hidden: boolean }): Promise<boolean> {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
services.hideTransactionCategory({
|
services.hideTransactionCategory({
|
||||||
id: params.category.id,
|
id: category.id,
|
||||||
hidden: params.hidden
|
hidden: hidden
|
||||||
}).then(response => {
|
}).then(response => {
|
||||||
const data = response.data;
|
const data = response.data;
|
||||||
|
|
||||||
if (!data || !data.success || !data.result) {
|
if (!data || !data.success || !data.result) {
|
||||||
if (params.hidden) {
|
if (hidden) {
|
||||||
reject({ message: 'Unable to hide this category' });
|
reject({ message: 'Unable to hide this category' });
|
||||||
} else {
|
} else {
|
||||||
reject({ message: 'Unable to unhide this category' });
|
reject({ message: 'Unable to unhide this category' });
|
||||||
@@ -439,10 +435,7 @@ export const useTransactionCategoriesStore = defineStore('transactionCategories'
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
updateCategoryVisibilityInTransactionCategoryList({
|
updateCategoryVisibilityInTransactionCategoryList({ category, hidden });
|
||||||
category: params.category,
|
|
||||||
hidden: params.hidden
|
|
||||||
});
|
|
||||||
|
|
||||||
resolve(data.result);
|
resolve(data.result);
|
||||||
}).catch(error => {
|
}).catch(error => {
|
||||||
@@ -451,7 +444,7 @@ export const useTransactionCategoriesStore = defineStore('transactionCategories'
|
|||||||
if (error.response && error.response.data && error.response.data.errorMessage) {
|
if (error.response && error.response.data && error.response.data.errorMessage) {
|
||||||
reject({ error: error.response.data });
|
reject({ error: error.response.data });
|
||||||
} else if (!error.processed) {
|
} else if (!error.processed) {
|
||||||
if (params.hidden) {
|
if (hidden) {
|
||||||
reject({ message: 'Unable to hide this category' });
|
reject({ message: 'Unable to hide this category' });
|
||||||
} else {
|
} else {
|
||||||
reject({ message: 'Unable to unhide this category' });
|
reject({ message: 'Unable to unhide this category' });
|
||||||
@@ -463,10 +456,10 @@ export const useTransactionCategoriesStore = defineStore('transactionCategories'
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function deleteCategory(params: { category: TransactionCategory, beforeResolve: BeforeResolveFunction }): Promise<boolean> {
|
function deleteCategory({ category, beforeResolve }: { category: TransactionCategory, beforeResolve: BeforeResolveFunction }): Promise<boolean> {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
services.deleteTransactionCategory({
|
services.deleteTransactionCategory({
|
||||||
id: params.category.id
|
id: category.id
|
||||||
}).then(response => {
|
}).then(response => {
|
||||||
const data = response.data;
|
const data = response.data;
|
||||||
|
|
||||||
@@ -475,12 +468,12 @@ export const useTransactionCategoriesStore = defineStore('transactionCategories'
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (params.beforeResolve) {
|
if (beforeResolve) {
|
||||||
params.beforeResolve(() => {
|
beforeResolve(() => {
|
||||||
removeCategoryFromTransactionCategoryList(params.category);
|
removeCategoryFromTransactionCategoryList(category);
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
removeCategoryFromTransactionCategoryList(params.category);
|
removeCategoryFromTransactionCategoryList(category);
|
||||||
}
|
}
|
||||||
|
|
||||||
resolve(data.result);
|
resolve(data.result);
|
||||||
|
|||||||
@@ -59,13 +59,13 @@ export const useTransactionTagsStore = defineStore('transactionTags', () => {
|
|||||||
allTransactionTagsMap.value[tag.id] = tag;
|
allTransactionTagsMap.value[tag.id] = tag;
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateTagDisplayOrderInTransactionTagList(params: { from: number, to: number }): void {
|
function updateTagDisplayOrderInTransactionTagList({ from, to }: { from: number, to: number }): void {
|
||||||
allTransactionTags.value.splice(params.to, 0, allTransactionTags.value.splice(params.from, 1)[0]);
|
allTransactionTags.value.splice(to, 0, allTransactionTags.value.splice(from, 1)[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateTagVisibilityInTransactionTagList(params: { tag: TransactionTag, hidden: boolean }): void {
|
function updateTagVisibilityInTransactionTagList({ tag, hidden }: { tag: TransactionTag, hidden: boolean }): void {
|
||||||
if (allTransactionTagsMap.value[params.tag.id]) {
|
if (allTransactionTagsMap.value[tag.id]) {
|
||||||
allTransactionTagsMap.value[params.tag.id].hidden = params.hidden;
|
allTransactionTagsMap.value[tag.id].hidden = hidden;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -92,8 +92,8 @@ export const useTransactionTagsStore = defineStore('transactionTags', () => {
|
|||||||
transactionTagListStateInvalid.value = true;
|
transactionTagListStateInvalid.value = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
function loadAllTags(params: { force?: boolean }): Promise<TransactionTag[]> {
|
function loadAllTags({ force }: { force?: boolean }): Promise<TransactionTag[]> {
|
||||||
if (!params.force && !transactionTagListStateInvalid.value) {
|
if (!force && !transactionTagListStateInvalid.value) {
|
||||||
return new Promise((resolve) => {
|
return new Promise((resolve) => {
|
||||||
resolve(allTransactionTags.value);
|
resolve(allTransactionTags.value);
|
||||||
});
|
});
|
||||||
@@ -114,7 +114,7 @@ export const useTransactionTagsStore = defineStore('transactionTags', () => {
|
|||||||
|
|
||||||
const transactionTags = TransactionTag.ofMany(data.result);
|
const transactionTags = TransactionTag.ofMany(data.result);
|
||||||
|
|
||||||
if (params.force && data.result && isEquals(allTransactionTags.value, transactionTags)) {
|
if (force && data.result && isEquals(allTransactionTags.value, transactionTags)) {
|
||||||
reject({ message: 'Tag list is up to date' });
|
reject({ message: 'Tag list is up to date' });
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -123,7 +123,7 @@ export const useTransactionTagsStore = defineStore('transactionTags', () => {
|
|||||||
|
|
||||||
resolve(transactionTags);
|
resolve(transactionTags);
|
||||||
}).catch(error => {
|
}).catch(error => {
|
||||||
if (params.force) {
|
if (force) {
|
||||||
logger.error('failed to force load tag list', error);
|
logger.error('failed to force load tag list', error);
|
||||||
} else {
|
} else {
|
||||||
logger.error('failed to load tag list', error);
|
logger.error('failed to load tag list', error);
|
||||||
@@ -140,21 +140,21 @@ export const useTransactionTagsStore = defineStore('transactionTags', () => {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function saveTag(params: { tag: TransactionTag }): Promise<TransactionTag> {
|
function saveTag({ tag }: { tag: TransactionTag }): Promise<TransactionTag> {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
let promise: ApiResponsePromise<TransactionTagInfoResponse>;
|
let promise: ApiResponsePromise<TransactionTagInfoResponse>;
|
||||||
|
|
||||||
if (!params.tag.id) {
|
if (!tag.id) {
|
||||||
promise = services.addTransactionTag(params.tag.toCreateRequest());
|
promise = services.addTransactionTag(tag.toCreateRequest());
|
||||||
} else {
|
} else {
|
||||||
promise = services.modifyTransactionTag(params.tag.toModifyRequest());
|
promise = services.modifyTransactionTag(tag.toModifyRequest());
|
||||||
}
|
}
|
||||||
|
|
||||||
promise.then(response => {
|
promise.then(response => {
|
||||||
const data = response.data;
|
const data = response.data;
|
||||||
|
|
||||||
if (!data || !data.success || !data.result) {
|
if (!data || !data.success || !data.result) {
|
||||||
if (!params.tag.id) {
|
if (!tag.id) {
|
||||||
reject({ message: 'Unable to add tag' });
|
reject({ message: 'Unable to add tag' });
|
||||||
} else {
|
} else {
|
||||||
reject({ message: 'Unable to save tag' });
|
reject({ message: 'Unable to save tag' });
|
||||||
@@ -164,7 +164,7 @@ export const useTransactionTagsStore = defineStore('transactionTags', () => {
|
|||||||
|
|
||||||
const transactionTag = TransactionTag.of(data.result);
|
const transactionTag = TransactionTag.of(data.result);
|
||||||
|
|
||||||
if (!params.tag.id) {
|
if (!tag.id) {
|
||||||
addTagToTransactionTagList(transactionTag);
|
addTagToTransactionTagList(transactionTag);
|
||||||
} else {
|
} else {
|
||||||
updateTagInTransactionTagList(transactionTag);
|
updateTagInTransactionTagList(transactionTag);
|
||||||
@@ -177,7 +177,7 @@ export const useTransactionTagsStore = defineStore('transactionTags', () => {
|
|||||||
if (error.response && error.response.data && error.response.data.errorMessage) {
|
if (error.response && error.response.data && error.response.data.errorMessage) {
|
||||||
reject({ error: error.response.data });
|
reject({ error: error.response.data });
|
||||||
} else if (!error.processed) {
|
} else if (!error.processed) {
|
||||||
if (!params.tag.id) {
|
if (!tag.id) {
|
||||||
reject({ message: 'Unable to add tag' });
|
reject({ message: 'Unable to add tag' });
|
||||||
} else {
|
} else {
|
||||||
reject({ message: 'Unable to save tag' });
|
reject({ message: 'Unable to save tag' });
|
||||||
@@ -189,18 +189,18 @@ export const useTransactionTagsStore = defineStore('transactionTags', () => {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function changeTagDisplayOrder(params: { tagId: string, from: number, to: number }): Promise<void> {
|
function changeTagDisplayOrder({ tagId, from, to }: { tagId: string, from: number, to: number }): Promise<void> {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
let tag: TransactionTag | null = null;
|
let tag: TransactionTag | null = null;
|
||||||
|
|
||||||
for (let i = 0; i < allTransactionTags.value.length; i++) {
|
for (let i = 0; i < allTransactionTags.value.length; i++) {
|
||||||
if (allTransactionTags.value[i].id === params.tagId) {
|
if (allTransactionTags.value[i].id === tagId) {
|
||||||
tag = allTransactionTags.value[i];
|
tag = allTransactionTags.value[i];
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!tag || !allTransactionTags.value[params.to]) {
|
if (!tag || !allTransactionTags.value[to]) {
|
||||||
reject({ message: 'Unable to move tag' });
|
reject({ message: 'Unable to move tag' });
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -209,10 +209,7 @@ export const useTransactionTagsStore = defineStore('transactionTags', () => {
|
|||||||
updateTransactionTagListInvalidState(true);
|
updateTransactionTagListInvalidState(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
updateTagDisplayOrderInTransactionTagList({
|
updateTagDisplayOrderInTransactionTagList({ from, to });
|
||||||
from: params.from,
|
|
||||||
to: params.to
|
|
||||||
});
|
|
||||||
|
|
||||||
resolve();
|
resolve();
|
||||||
});
|
});
|
||||||
@@ -258,16 +255,16 @@ export const useTransactionTagsStore = defineStore('transactionTags', () => {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function hideTag(params: { tag: TransactionTag, hidden: boolean }): Promise<boolean> {
|
function hideTag({ tag, hidden }: { tag: TransactionTag, hidden: boolean }): Promise<boolean> {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
services.hideTransactionTag({
|
services.hideTransactionTag({
|
||||||
id: params.tag.id,
|
id: tag.id,
|
||||||
hidden: params.hidden
|
hidden: hidden
|
||||||
}).then(response => {
|
}).then(response => {
|
||||||
const data = response.data;
|
const data = response.data;
|
||||||
|
|
||||||
if (!data || !data.success || !data.result) {
|
if (!data || !data.success || !data.result) {
|
||||||
if (params.hidden) {
|
if (hidden) {
|
||||||
reject({ message: 'Unable to hide this tag' });
|
reject({ message: 'Unable to hide this tag' });
|
||||||
} else {
|
} else {
|
||||||
reject({ message: 'Unable to unhide this tag' });
|
reject({ message: 'Unable to unhide this tag' });
|
||||||
@@ -275,10 +272,7 @@ export const useTransactionTagsStore = defineStore('transactionTags', () => {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
updateTagVisibilityInTransactionTagList({
|
updateTagVisibilityInTransactionTagList({ tag, hidden });
|
||||||
tag: params.tag,
|
|
||||||
hidden: params.hidden
|
|
||||||
});
|
|
||||||
|
|
||||||
resolve(data.result);
|
resolve(data.result);
|
||||||
}).catch(error => {
|
}).catch(error => {
|
||||||
@@ -287,7 +281,7 @@ export const useTransactionTagsStore = defineStore('transactionTags', () => {
|
|||||||
if (error.response && error.response.data && error.response.data.errorMessage) {
|
if (error.response && error.response.data && error.response.data.errorMessage) {
|
||||||
reject({ error: error.response.data });
|
reject({ error: error.response.data });
|
||||||
} else if (!error.processed) {
|
} else if (!error.processed) {
|
||||||
if (params.hidden) {
|
if (hidden) {
|
||||||
reject({ message: 'Unable to hide this tag' });
|
reject({ message: 'Unable to hide this tag' });
|
||||||
} else {
|
} else {
|
||||||
reject({ message: 'Unable to unhide this tag' });
|
reject({ message: 'Unable to unhide this tag' });
|
||||||
@@ -299,10 +293,10 @@ export const useTransactionTagsStore = defineStore('transactionTags', () => {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function deleteTag(params: { tag: TransactionTag, beforeResolve?: BeforeResolveFunction }): Promise<boolean> {
|
function deleteTag({ tag, beforeResolve }: { tag: TransactionTag, beforeResolve?: BeforeResolveFunction }): Promise<boolean> {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
services.deleteTransactionTag({
|
services.deleteTransactionTag({
|
||||||
id: params.tag.id
|
id: tag.id
|
||||||
}).then(response => {
|
}).then(response => {
|
||||||
const data = response.data;
|
const data = response.data;
|
||||||
|
|
||||||
@@ -311,12 +305,12 @@ export const useTransactionTagsStore = defineStore('transactionTags', () => {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (params.beforeResolve) {
|
if (beforeResolve) {
|
||||||
params.beforeResolve(() => {
|
beforeResolve(() => {
|
||||||
removeTagFromTransactionTagList(params.tag);
|
removeTagFromTransactionTagList(tag);
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
removeTagFromTransactionTagList(params.tag);
|
removeTagFromTransactionTagList(tag);
|
||||||
}
|
}
|
||||||
|
|
||||||
resolve(data.result);
|
resolve(data.result);
|
||||||
|
|||||||
+4
-6
@@ -154,11 +154,9 @@ export const useUserStore = defineStore('user', () => {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateUserTransactionEditScope(req: { transactionEditScope: number }): Promise<UserProfileUpdateResponse> {
|
function updateUserTransactionEditScope({ transactionEditScope }: { transactionEditScope: number }): Promise<UserProfileUpdateResponse> {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
services.updateProfile({
|
services.updateProfile({ transactionEditScope }).then(response => {
|
||||||
transactionEditScope: req.transactionEditScope,
|
|
||||||
}).then(response => {
|
|
||||||
const data = response.data;
|
const data = response.data;
|
||||||
|
|
||||||
if (!data || !data.success || !data.result || !data.result.user || !isObject(data.result.user)) {
|
if (!data || !data.success || !data.result || !data.result.user || !isObject(data.result.user)) {
|
||||||
@@ -183,9 +181,9 @@ export const useUserStore = defineStore('user', () => {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateUserAvatar(req: { avatarFile: unknown }): Promise<UserProfileResponse> {
|
function updateUserAvatar({ avatarFile }: { avatarFile: unknown }): Promise<UserProfileResponse> {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
services.updateAvatar({ avatarFile: req.avatarFile }).then(response => {
|
services.updateAvatar({ avatarFile }).then(response => {
|
||||||
const data = response.data;
|
const data = response.data;
|
||||||
|
|
||||||
if (!data || !data.success || !data.result) {
|
if (!data || !data.success || !data.result) {
|
||||||
|
|||||||
Reference in New Issue
Block a user