Polish: remove unused proxy field, fix API naming inconsistency

- Remove proxy_url from store create/edit forms (field exists in DB
  but neither scraper implements proxy support — misleading UX)
- Rename updateGroupApi → updateGroup, setGroupMembersApi → setGroupMembers
  for consistent naming with all other API functions

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
mariosemes
2026-03-27 07:28:59 +01:00
parent bc6090abe8
commit 226fa36016
4 changed files with 6 additions and 12 deletions

View File

@@ -74,11 +74,11 @@ export function createGroup(name: string, description?: string) {
return api<any>('/api/groups', { method: 'POST', body: JSON.stringify({ name, description }) });
}
export function updateGroupApi(id: number, data: any) {
export function updateGroup(id: number, data: any) {
return api<any>(`/api/groups/${id}`, { method: 'PUT', body: JSON.stringify(data) });
}
export function setGroupMembersApi(id: number, storeIds: number[]) {
export function setGroupMembers(id: number, storeIds: number[]) {
return api<any>(`/api/groups/${id}/members`, { method: 'PUT', body: JSON.stringify({ store_ids: storeIds }) });
}

View File

@@ -1,7 +1,7 @@
<script>
import {
getCategories, createCategory, updateCategory, deleteCategory,
getGroups, createGroup, updateGroupApi, deleteGroup, setGroupMembersApi, getStores,
getGroups, createGroup, updateGroup, deleteGroup, setGroupMembers, getStores,
} from '$lib/api';
import { onMount } from 'svelte';
@@ -65,7 +65,7 @@
const ids = group.store_ids.includes(storeId)
? group.store_ids.filter((id) => id !== storeId)
: [...group.store_ids, storeId];
await setGroupMembersApi(groupId, ids);
await setGroupMembers(groupId, ids);
groups = groups.map((g) => (g.id === groupId ? { ...g, store_ids: ids } : g));
}
</script>

View File

@@ -13,7 +13,7 @@
name: '', base_url: '', search_url: '',
sel_container: '', sel_name: '', sel_price: '', sel_link: '', sel_image: '',
category_id: '', currency: 'EUR', rate_limit: 2, render_js: false, test_query: '',
user_agent: '', proxy_url: '', headers_json: '',
user_agent: '', headers_json: '',
});
onMount(async () => {
@@ -134,7 +134,6 @@
<div class="grid grid-cols-2 gap-4">
<div><label class="label">Rate Limit</label><input type="number" bind:value={form.rate_limit} min="1" max="10" class="input-field" /></div>
<div><label class="label">User Agent</label><input type="text" bind:value={form.user_agent} class="input-field" /></div>
<div><label class="label">Proxy URL</label><input type="text" bind:value={form.proxy_url} class="input-field" /></div>
<div><label class="label">Extra Headers (JSON)</label><input type="text" bind:value={form.headers_json} class="input-field-mono" /></div>
</div>
</section>

View File

@@ -11,7 +11,7 @@
name: '', base_url: '', search_url: '',
sel_container: '', sel_name: '', sel_price: '', sel_link: '', sel_image: '',
category_id: '', currency: 'EUR', rate_limit: 2, render_js: false, test_query: '',
user_agent: '', proxy_url: '', headers_json: '',
user_agent: '', headers_json: '',
});
onMount(async () => { categories = await getCategories(); });
@@ -25,7 +25,6 @@
if (data.category_id) data.category_id = Number(data.category_id); else delete data.category_id;
if (!data.sel_image) delete data.sel_image;
if (!data.user_agent) delete data.user_agent;
if (!data.proxy_url) delete data.proxy_url;
if (!data.headers_json) delete data.headers_json;
else { try { JSON.parse(data.headers_json); } catch { error = 'Extra Headers must be valid JSON'; saving = false; return; } }
if (!data.test_query) delete data.test_query;
@@ -138,10 +137,6 @@
<label class="label">User Agent</label>
<input type="text" bind:value={form.user_agent} placeholder="Default browser UA" class="input-field" />
</div>
<div>
<label class="label">Proxy URL</label>
<input type="text" bind:value={form.proxy_url} placeholder="http://user:pass@host:port" class="input-field" />
</div>
<div>
<label class="label">Extra Headers (JSON)</label>
<input type="text" bind:value={form.headers_json} placeholder={'{"X-Custom": "value"}'} class="input-field-mono" />