MCPcopy Index your code
hub / github.com/vastsa/FileCodeBox / save_file_view_preset

Method save_file_view_preset

apps/admin/services.py:283–335  ·  view source on GitHub ↗
(
        self,
        preset_id: Optional[str],
        name: str,
        filters: dict[str, Any],
    )

Source from the content-addressed store, hash-verified

281 }
282
283 async def save_file_view_preset(
284 self,
285 preset_id: Optional[str],
286 name: str,
287 filters: dict[str, Any],
288 ) -> dict[str, Any]:
289 presets = await self._get_file_view_presets()
290 normalized_name = self._normalize_file_view_preset_name(name)
291 normalized_filters = self._normalize_file_view_preset_filters(filters)
292 now = await get_now()
293 updated_at = now.isoformat()
294
295 target_index = next(
296 (index for index, preset in enumerate(presets) if preset["id"] == preset_id),
297 -1,
298 )
299 is_update = target_index >= 0
300 if is_update:
301 preset = presets[target_index]
302 next_preset = {
303 **preset,
304 "name": normalized_name,
305 "filters": normalized_filters,
306 "params": normalized_filters,
307 "updatedAt": updated_at,
308 "updated_at": updated_at,
309 }
310 presets[target_index] = next_preset
311 else:
312 if len(presets) >= self.MAX_VIEW_PRESETS:
313 raise HTTPException(status_code=400, detail="视图预设数量已达上限")
314 next_preset = {
315 "id": preset_id or self._build_file_view_preset_id(normalized_name, now),
316 "name": normalized_name,
317 "filters": normalized_filters,
318 "params": normalized_filters,
319 "createdAt": updated_at,
320 "created_at": updated_at,
321 "updatedAt": updated_at,
322 "updated_at": updated_at,
323 }
324 presets.append(next_preset)
325
326 await self._save_file_view_presets(presets)
327 await self.record_admin_activity(
328 action="file.view_preset_update" if is_update else "file.view_preset_create",
329 target_type="view_preset",
330 target_id=next_preset["id"],
331 target_name=next_preset["name"],
332 count=1,
333 meta={"filters": normalized_filters},
334 )
335 return next_preset
336
337 async def delete_file_view_preset(self, preset_id: str) -> dict[str, Any]:
338 preset_id = str(preset_id).strip()

Callers 1

save_file_view_presetFunction · 0.80

Tested by

no test coverage detected