code refactor

This commit is contained in:
MaysWind
2025-01-15 22:36:38 +08:00
parent 0b7fd647e6
commit dc4310c301
7 changed files with 134 additions and 152 deletions
+4 -4
View File
@@ -59,11 +59,11 @@ export const useExchangeRatesStore = defineStore('exchangeRates', () => {
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 now = getCurrentUnixTime();
if (!req.force) {
if (!force) {
if (currentExchangeRateData && currentExchangeRateData.time && currentExchangeRateData.data &&
formatUnixTime(currentExchangeRateData.data.updateTime, 'YYYY-MM-DD') === formatUnixTime(now, 'YYYY-MM-DD')) {
return Promise.resolve(currentExchangeRateData.data);
@@ -77,7 +77,7 @@ export const useExchangeRatesStore = defineStore('exchangeRates', () => {
return new Promise((resolve, reject) => {
services.getLatestExchangeRates({
ignoreError: req.silent
ignoreError: silent
}).then(response => {
const data = response.data;
@@ -88,7 +88,7 @@ export const useExchangeRatesStore = defineStore('exchangeRates', () => {
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' });
return;
}
+7 -7
View File
@@ -276,7 +276,7 @@ export const useOverviewStore = defineStore('overview', () => {
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 rangeChanged = false;
@@ -285,11 +285,11 @@ export const useOverviewStore = defineStore('overview', () => {
updateTransactionDateRange();
}
if (params.loadLast11Months && !transactionOverviewOptions.value.loadLast11Months) {
if (loadLast11Months && !transactionOverviewOptions.value.loadLast11Months) {
rangeChanged = true;
}
if (!dateChanged && !rangeChanged && !params.force && !transactionOverviewStateInvalid.value) {
if (!dateChanged && !rangeChanged && !force && !transactionOverviewStateInvalid.value) {
return new Promise((resolve) => {
resolve(transactionOverviewData.value);
});
@@ -303,7 +303,7 @@ export const useOverviewStore = defineStore('overview', () => {
thisYear: transactionDataRange.value.thisYear
};
if (params.loadLast11Months) {
if (loadLast11Months) {
requestParams.lastMonth = transactionDataRange.value.lastMonth;
requestParams.monthBeforeLastMonth = transactionDataRange.value.monthBeforeLastMonth;
requestParams.monthBeforeLast2Months = transactionDataRange.value.monthBeforeLast2Months;
@@ -330,17 +330,17 @@ export const useOverviewStore = defineStore('overview', () => {
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' });
return;
}
transactionOverviewData.value = data.result;
transactionOverviewOptions.value.loadLast11Months = params.loadLast11Months;
transactionOverviewOptions.value.loadLast11Months = loadLast11Months;
resolve(data.result);
}).catch(error => {
if (params.force) {
if (force) {
logger.error('failed to force load transaction overview', error);
} else {
logger.error('failed to load transaction overview', error);
+2 -5
View File
@@ -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) => {
services.revokeToken({
tokenId: req.tokenId,
ignoreError: !!req.ignoreError
}).then(response => {
services.revokeToken({ tokenId, ignoreError }).then(response => {
const data = response.data;
if (!data || !data.success || !data.result) {
+45 -52
View File
@@ -94,23 +94,23 @@ export const useTransactionCategoriesStore = defineStore('transactionCategories'
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;
if (!params.category.parentId || params.category.parentId === '0') {
categoryList = allTransactionCategories.value[params.category.type];
} else if (allTransactionCategoriesMap.value[params.category.parentId]) {
categoryList = allTransactionCategoriesMap.value[params.category.parentId].secondaryCategories;
if (!category.parentId || category.parentId === '0') {
categoryList = allTransactionCategories.value[category.type];
} else if (allTransactionCategoriesMap.value[category.parentId]) {
categoryList = allTransactionCategoriesMap.value[category.parentId].secondaryCategories;
}
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 {
if (allTransactionCategoriesMap.value[params.category.id]) {
allTransactionCategoriesMap.value[params.category.id].visible = !params.hidden;
function updateCategoryVisibilityInTransactionCategoryList({ category, hidden }: { category: TransactionCategory, hidden: boolean }): void {
if (allTransactionCategoriesMap.value[category.id]) {
allTransactionCategoriesMap.value[category.id].visible = !hidden;
}
}
@@ -160,8 +160,8 @@ export const useTransactionCategoriesStore = defineStore('transactionCategories'
transactionCategoryListStateInvalid.value = true;
}
function loadAllCategories(params: { force?: boolean }): Promise<Record<number, TransactionCategory[]>> {
if (!params.force && !transactionCategoryListStateInvalid.value) {
function loadAllCategories({ force }: { force?: boolean }): Promise<Record<number, TransactionCategory[]>> {
if (!force && !transactionCategoryListStateInvalid.value) {
return new Promise((resolve) => {
resolve(allTransactionCategories.value);
});
@@ -194,7 +194,7 @@ export const useTransactionCategoriesStore = defineStore('transactionCategories'
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' });
return;
}
@@ -203,7 +203,7 @@ export const useTransactionCategoriesStore = defineStore('transactionCategories'
resolve(transactionCategories);
}).catch(error => {
if (params.force) {
if (force) {
logger.error('failed to force load category list', error);
} else {
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) => {
services.getTransactionCategory({
id: params.categoryId
id: categoryId
}).then(response => {
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) => {
let promise: ApiResponsePromise<TransactionCategoryInfoResponse>;
if (!params.isEdit) {
promise = services.addTransactionCategory(params.category.toCreateRequest(params.clientSessionId));
if (!isEdit) {
promise = services.addTransactionCategory(category.toCreateRequest(clientSessionId));
} else {
promise = services.modifyTransactionCategory(params.category.toModifyRequest());
promise = services.modifyTransactionCategory(category.toModifyRequest());
}
promise.then(response => {
const data = response.data;
if (!data || !data.success || !data.result) {
if (!params.isEdit) {
if (!isEdit) {
reject({ message: 'Unable to add category' });
} else {
reject({ message: 'Unable to save category' });
@@ -273,10 +273,10 @@ export const useTransactionCategoriesStore = defineStore('transactionCategories'
const transactionCategory = TransactionCategory.of(data.result);
if (!params.isEdit) {
if (!isEdit) {
addCategoryToTransactionCategoryList(transactionCategory);
} else {
const result = updateCategoryInTransactionCategoryList(transactionCategory, allTransactionCategoriesMap.value[params.category.id]);
const result = updateCategoryInTransactionCategoryList(transactionCategory, allTransactionCategoriesMap.value[category.id]);
if (!result && !transactionCategoryListStateInvalid.value) {
updateTransactionCategoryListInvalidState(true);
@@ -290,7 +290,7 @@ export const useTransactionCategoriesStore = defineStore('transactionCategories'
if (error.response && error.response.data && error.response.data.errorMessage) {
reject({ error: error.response.data });
} else if (!error.processed) {
if (!params.isEdit) {
if (!isEdit) {
reject({ message: 'Unable to add category' });
} else {
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> {
const category = allTransactionCategoriesMap.value[params.categoryId];
function changeCategoryDisplayOrder({ categoryId, from, to }: { categoryId: string, from: number, to: number }): Promise<void> {
const category = allTransactionCategoriesMap.value[categoryId];
return new Promise((resolve, reject) => {
if (!category) {
@@ -344,14 +344,14 @@ export const useTransactionCategoriesStore = defineStore('transactionCategories'
if (!category.parentId || category.parentId === '0') {
if (!allTransactionCategories.value[category.type] ||
!allTransactionCategories.value[category.type][params.to]) {
!allTransactionCategories.value[category.type][to]) {
reject({ message: 'Unable to move category' });
return;
}
} else {
const subCategoryList = allTransactionCategoriesMap.value[category.parentId].secondaryCategories;
if (!subCategoryList || !subCategoryList[params.to]) {
if (!subCategoryList || !subCategoryList[to]) {
reject({ message: 'Unable to move category' });
return;
}
@@ -361,25 +361,21 @@ export const useTransactionCategoriesStore = defineStore('transactionCategories'
updateTransactionCategoryListInvalidState(true);
}
updateCategoryDisplayOrderInCategoryList({
category: category,
from: params.from,
to: params.to
});
updateCategoryDisplayOrderInCategoryList({ category, from, to });
resolve();
});
}
function updateCategoryDisplayOrders(params: { type: CategoryType, parentId: string }): Promise<boolean> {
function updateCategoryDisplayOrders({ type, parentId }: { type: CategoryType, parentId: string }): Promise<boolean> {
const newDisplayOrders: TransactionCategoryNewDisplayOrderRequest[] = [];
let categoryList: TransactionCategory[] | undefined = undefined;
if (!params.parentId || params.parentId === '0') {
categoryList = allTransactionCategories.value[params.type];
} else if (allTransactionCategoriesMap.value[params.parentId]) {
categoryList = allTransactionCategoriesMap.value[params.parentId].secondaryCategories;
if (!parentId || parentId === '0') {
categoryList = allTransactionCategories.value[type];
} else if (allTransactionCategoriesMap.value[parentId]) {
categoryList = allTransactionCategoriesMap.value[parentId].secondaryCategories;
}
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) => {
services.hideTransactionCategory({
id: params.category.id,
hidden: params.hidden
id: category.id,
hidden: hidden
}).then(response => {
const data = response.data;
if (!data || !data.success || !data.result) {
if (params.hidden) {
if (hidden) {
reject({ message: 'Unable to hide this category' });
} else {
reject({ message: 'Unable to unhide this category' });
@@ -439,10 +435,7 @@ export const useTransactionCategoriesStore = defineStore('transactionCategories'
return;
}
updateCategoryVisibilityInTransactionCategoryList({
category: params.category,
hidden: params.hidden
});
updateCategoryVisibilityInTransactionCategoryList({ category, hidden });
resolve(data.result);
}).catch(error => {
@@ -451,7 +444,7 @@ export const useTransactionCategoriesStore = defineStore('transactionCategories'
if (error.response && error.response.data && error.response.data.errorMessage) {
reject({ error: error.response.data });
} else if (!error.processed) {
if (params.hidden) {
if (hidden) {
reject({ message: 'Unable to hide this category' });
} else {
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) => {
services.deleteTransactionCategory({
id: params.category.id
id: category.id
}).then(response => {
const data = response.data;
@@ -475,12 +468,12 @@ export const useTransactionCategoriesStore = defineStore('transactionCategories'
return;
}
if (params.beforeResolve) {
params.beforeResolve(() => {
removeCategoryFromTransactionCategoryList(params.category);
if (beforeResolve) {
beforeResolve(() => {
removeCategoryFromTransactionCategoryList(category);
});
} else {
removeCategoryFromTransactionCategoryList(params.category);
removeCategoryFromTransactionCategoryList(category);
}
resolve(data.result);
+32 -38
View File
@@ -59,13 +59,13 @@ export const useTransactionTagsStore = defineStore('transactionTags', () => {
allTransactionTagsMap.value[tag.id] = tag;
}
function updateTagDisplayOrderInTransactionTagList(params: { from: number, to: number }): void {
allTransactionTags.value.splice(params.to, 0, allTransactionTags.value.splice(params.from, 1)[0]);
function updateTagDisplayOrderInTransactionTagList({ from, to }: { from: number, to: number }): void {
allTransactionTags.value.splice(to, 0, allTransactionTags.value.splice(from, 1)[0]);
}
function updateTagVisibilityInTransactionTagList(params: { tag: TransactionTag, hidden: boolean }): void {
if (allTransactionTagsMap.value[params.tag.id]) {
allTransactionTagsMap.value[params.tag.id].hidden = params.hidden;
function updateTagVisibilityInTransactionTagList({ tag, hidden }: { tag: TransactionTag, hidden: boolean }): void {
if (allTransactionTagsMap.value[tag.id]) {
allTransactionTagsMap.value[tag.id].hidden = hidden;
}
}
@@ -92,8 +92,8 @@ export const useTransactionTagsStore = defineStore('transactionTags', () => {
transactionTagListStateInvalid.value = true;
}
function loadAllTags(params: { force?: boolean }): Promise<TransactionTag[]> {
if (!params.force && !transactionTagListStateInvalid.value) {
function loadAllTags({ force }: { force?: boolean }): Promise<TransactionTag[]> {
if (!force && !transactionTagListStateInvalid.value) {
return new Promise((resolve) => {
resolve(allTransactionTags.value);
});
@@ -114,7 +114,7 @@ export const useTransactionTagsStore = defineStore('transactionTags', () => {
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' });
return;
}
@@ -123,7 +123,7 @@ export const useTransactionTagsStore = defineStore('transactionTags', () => {
resolve(transactionTags);
}).catch(error => {
if (params.force) {
if (force) {
logger.error('failed to force load tag list', error);
} else {
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) => {
let promise: ApiResponsePromise<TransactionTagInfoResponse>;
if (!params.tag.id) {
promise = services.addTransactionTag(params.tag.toCreateRequest());
if (!tag.id) {
promise = services.addTransactionTag(tag.toCreateRequest());
} else {
promise = services.modifyTransactionTag(params.tag.toModifyRequest());
promise = services.modifyTransactionTag(tag.toModifyRequest());
}
promise.then(response => {
const data = response.data;
if (!data || !data.success || !data.result) {
if (!params.tag.id) {
if (!tag.id) {
reject({ message: 'Unable to add tag' });
} else {
reject({ message: 'Unable to save tag' });
@@ -164,7 +164,7 @@ export const useTransactionTagsStore = defineStore('transactionTags', () => {
const transactionTag = TransactionTag.of(data.result);
if (!params.tag.id) {
if (!tag.id) {
addTagToTransactionTagList(transactionTag);
} else {
updateTagInTransactionTagList(transactionTag);
@@ -177,7 +177,7 @@ export const useTransactionTagsStore = defineStore('transactionTags', () => {
if (error.response && error.response.data && error.response.data.errorMessage) {
reject({ error: error.response.data });
} else if (!error.processed) {
if (!params.tag.id) {
if (!tag.id) {
reject({ message: 'Unable to add tag' });
} else {
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) => {
let tag: TransactionTag | null = null;
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];
break;
}
}
if (!tag || !allTransactionTags.value[params.to]) {
if (!tag || !allTransactionTags.value[to]) {
reject({ message: 'Unable to move tag' });
return;
}
@@ -209,10 +209,7 @@ export const useTransactionTagsStore = defineStore('transactionTags', () => {
updateTransactionTagListInvalidState(true);
}
updateTagDisplayOrderInTransactionTagList({
from: params.from,
to: params.to
});
updateTagDisplayOrderInTransactionTagList({ from, to });
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) => {
services.hideTransactionTag({
id: params.tag.id,
hidden: params.hidden
id: tag.id,
hidden: hidden
}).then(response => {
const data = response.data;
if (!data || !data.success || !data.result) {
if (params.hidden) {
if (hidden) {
reject({ message: 'Unable to hide this tag' });
} else {
reject({ message: 'Unable to unhide this tag' });
@@ -275,10 +272,7 @@ export const useTransactionTagsStore = defineStore('transactionTags', () => {
return;
}
updateTagVisibilityInTransactionTagList({
tag: params.tag,
hidden: params.hidden
});
updateTagVisibilityInTransactionTagList({ tag, hidden });
resolve(data.result);
}).catch(error => {
@@ -287,7 +281,7 @@ export const useTransactionTagsStore = defineStore('transactionTags', () => {
if (error.response && error.response.data && error.response.data.errorMessage) {
reject({ error: error.response.data });
} else if (!error.processed) {
if (params.hidden) {
if (hidden) {
reject({ message: 'Unable to hide this tag' });
} else {
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) => {
services.deleteTransactionTag({
id: params.tag.id
id: tag.id
}).then(response => {
const data = response.data;
@@ -311,12 +305,12 @@ export const useTransactionTagsStore = defineStore('transactionTags', () => {
return;
}
if (params.beforeResolve) {
params.beforeResolve(() => {
removeTagFromTransactionTagList(params.tag);
if (beforeResolve) {
beforeResolve(() => {
removeTagFromTransactionTagList(tag);
});
} else {
removeTagFromTransactionTagList(params.tag);
removeTagFromTransactionTagList(tag);
}
resolve(data.result);
+4 -6
View File
@@ -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) => {
services.updateProfile({
transactionEditScope: req.transactionEditScope,
}).then(response => {
services.updateProfile({ transactionEditScope }).then(response => {
const data = response.data;
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) => {
services.updateAvatar({ avatarFile: req.avatarFile }).then(response => {
services.updateAvatar({ avatarFile }).then(response => {
const data = response.data;
if (!data || !data.success || !data.result) {