Improved how tags are exposed by the ApiClient when listing tags

This commit is contained in:
Alejandro Celaya
2020-05-10 11:20:40 +02:00
parent 67c674f073
commit 6fd30ed51a
4 changed files with 6 additions and 5 deletions

View File

@@ -61,14 +61,14 @@ export const listTags = (buildShlinkApiClient, force = true) => () => async (dis
try {
const { listTags } = buildShlinkApiClient(getState);
const { stats = [], data } = await listTags();
const { tags, stats = [] } = await listTags();
const processedStats = stats.reduce((acc, { tag, shortUrlsCount, visitsCount }) => {
acc[tag] = { shortUrlsCount, visitsCount };
return acc;
}, {});
dispatch({ tags: data, stats: processedStats, type: LIST_TAGS });
dispatch({ tags, stats: processedStats, type: LIST_TAGS });
} catch (e) {
dispatch({ type: LIST_TAGS_ERROR });
}

View File

@@ -54,7 +54,8 @@ export default class ShlinkApiClient {
listTags = () =>
this._performRequest('/tags', 'GET', { withStats: 'true' })
.then((resp) => resp.data.tags);
.then((resp) => resp.data.tags)
.then(({ data, stats }) => ({ tags: data, stats }));
deleteTags = (tags) =>
this._performRequest('/tags', 'DELETE', { tags })