diff --git a/src/api/mediaProxyCache.js b/src/api/mediaProxyCache.js index 8c19a791..30b63798 100644 --- a/src/api/mediaProxyCache.js +++ b/src/api/mediaProxyCache.js @@ -31,4 +31,13 @@ export async function removeBannedUrls(urls, authHost, token) { }) } +export async function searchBannedUrls(query, page, pageSize, authHost, token) { + return await request({ + baseURL: baseName(authHost), + url: `/api/pleroma/admin/media_proxy_caches?query=${query}&page=${page}&page_size=${pageSize}`, + method: 'get', + headers: authHeaders(token) + }) +} + const authHeaders = (token) => token ? { 'Authorization': `Bearer ${getToken()}` } : {} diff --git a/src/store/modules/mediaProxyCache.js b/src/store/modules/mediaProxyCache.js index 8e675a44..b15fdb34 100644 --- a/src/store/modules/mediaProxyCache.js +++ b/src/store/modules/mediaProxyCache.js @@ -1,4 +1,4 @@ -import { listBannedUrls, purgeUrls, removeBannedUrls } from '@/api/mediaProxyCache' +import { listBannedUrls, purgeUrls, removeBannedUrls, searchBannedUrls } from '@/api/mediaProxyCache' import { Message } from 'element-ui' import i18n from '@/lang' @@ -47,6 +47,21 @@ const mediaProxyCache = { async RemoveBannedUrls({ dispatch, getters, state }, urls) { await removeBannedUrls(urls, getters.authHost, getters.token) dispatch('ListBannedUrls', { page: state.currentPage }) + }, + async SearchUrls({ commit, dispatch, getters, state }, { query, page }) { + if (query.length === 0) { + commit('SET_SEARCH_QUERY', query) + dispatch('ListBannedUrls', { page }) + } else { + commit('SET_LOADING', true) + commit('SET_SEARCH_QUERY', query) + + const response = await searchBannedUrls(query, page, state.pageSize, getters.authHost, getters.token) + commit('SET_BANNED_URLS', response.data.urls) + commit('SET_TOTAL_URLS_COUNT', response.data.count) + commit('SET_PAGE', page) + commit('SET_LOADING', false) + } } } } diff --git a/src/views/mediaProxyCache/index.vue b/src/views/mediaProxyCache/index.vue index 1141ccc0..64dbe184 100644 --- a/src/views/mediaProxyCache/index.vue +++ b/src/views/mediaProxyCache/index.vue @@ -28,7 +28,7 @@ align="center" width="55"/> -