instead of deleting from pocketbase we display a is delete message with aditionl optional text

This commit is contained in:
Michel Roegl-Brunner
2026-03-12 16:14:55 +01:00
parent 070f1120e6
commit 0071259e67

View File

@@ -52,15 +52,15 @@ jobs:
slugs=$(echo $slugs | xargs -n1 | sort -u | tr '\n' ' ') slugs=$(echo $slugs | xargs -n1 | sort -u | tr '\n' ' ')
if [[ -z "$slugs" ]]; then if [[ -z "$slugs" ]]; then
echo "No deleted JSON or script files to remove from PocketBase." echo "No deleted JSON or script files to mark as deleted in PocketBase."
echo "count=0" >> "$GITHUB_OUTPUT" echo "count=0" >> "$GITHUB_OUTPUT"
exit 0 exit 0
fi fi
echo "$slugs" > slugs_to_delete.txt echo "$slugs" > slugs_to_delete.txt
echo "count=$(echo $slugs | wc -w)" >> "$GITHUB_OUTPUT" echo "count=$(echo $slugs | wc -w)" >> "$GITHUB_OUTPUT"
echo "Slugs to delete: $slugs" echo "Slugs to mark as deleted: $slugs"
- name: Delete from PocketBase - name: Mark as deleted in PocketBase
if: steps.slugs.outputs.count != '0' if: steps.slugs.outputs.count != '0'
env: env:
POCKETBASE_URL: ${{ secrets.POCKETBASE_URL }} POCKETBASE_URL: ${{ secrets.POCKETBASE_URL }}
@@ -123,6 +123,8 @@ jobs:
const token = JSON.parse(authRes.body).token; const token = JSON.parse(authRes.body).token;
const recordsUrl = apiBase + '/collections/' + encodeURIComponent(coll) + '/records'; const recordsUrl = apiBase + '/collections/' + encodeURIComponent(coll) + '/records';
const patchBody = JSON.stringify({ is_deleted: true });
for (const slug of slugs) { for (const slug of slugs) {
const filter = "(slug='" + slug + "')"; const filter = "(slug='" + slug + "')";
const listRes = await request(recordsUrl + '?filter=' + encodeURIComponent(filter) + '&perPage=1', { const listRes = await request(recordsUrl + '?filter=' + encodeURIComponent(filter) + '&perPage=1', {
@@ -134,14 +136,15 @@ jobs:
console.log('No PocketBase record for slug "' + slug + '", skipping.'); console.log('No PocketBase record for slug "' + slug + '", skipping.');
continue; continue;
} }
const delRes = await request(recordsUrl + '/' + existingId, { const patchRes = await request(recordsUrl + '/' + existingId, {
method: 'DELETE', method: 'PATCH',
headers: { 'Authorization': token } headers: { 'Authorization': token, 'Content-Type': 'application/json' },
body: patchBody
}); });
if (delRes.ok) { if (patchRes.ok) {
console.log('Deleted PocketBase record for slug "' + slug + '" (id=' + existingId + ').'); console.log('Set is_deleted=true for slug "' + slug + '" (id=' + existingId + ').');
} else { } else {
console.warn('DELETE failed for slug "' + slug + '": ' + delRes.statusCode + ' ' + delRes.body); console.warn('PATCH failed for slug "' + slug + '": ' + patchRes.statusCode + ' ' + patchRes.body);
} }
} }
console.log('Done.'); console.log('Done.');