MCPcopy Create free account
hub / github.com/su-kaka/gcli2api / update_credential_state

Method update_credential_state

src/storage/psql_manager.py:440–485  ·  view source on GitHub ↗

更新凭证状态

(self, filename: str, state_updates: Dict[str, Any], mode: str = "geminicli")

Source from the content-addressed store, hash-verified

438 return False
439
440 async def update_credential_state(self, filename: str, state_updates: Dict[str, Any], mode: str = "geminicli") -> bool:
441 """更新凭证状态"""
442 self._ensure_initialized()
443 filename = os.path.basename(filename)
444
445 try:
446 table_name = self._get_table_name(mode)
447 log.debug(f"[DB] update_credential_state: filename={filename}, updates={state_updates}, mode={mode}")
448
449 set_clauses = []
450 values = []
451 idx = 1
452
453 for key, value in state_updates.items():
454 if key in self.STATE_FIELDS:
455 if key == "enable_credit" and mode != "antigravity":
456 continue
457 if key in ("error_codes", "error_messages", "model_cooldowns"):
458 set_clauses.append(f"{key} = ${idx}")
459 values.append(json.dumps(value))
460 else:
461 set_clauses.append(f"{key} = ${idx}")
462 values.append(value)
463 idx += 1
464
465 if not set_clauses:
466 return True
467
468 set_clauses.append(f"updated_at = EXTRACT(EPOCH FROM NOW())")
469 values.append(filename)
470
471 sql = f"""
472 UPDATE {table_name}
473 SET {', '.join(set_clauses)}
474 WHERE filename = ${idx}
475 """
476
477 async with self._pool.acquire() as conn:
478 result = await conn.execute(sql, *values)
479 updated_count = int(result.split()[-1])
480
481 return updated_count > 0
482
483 except Exception as e:
484 log.error(f"[DB] Error updating credential state {filename}: {e}")
485 return False
486
487 async def get_credential_state(self, filename: str, mode: str = "geminicli") -> Dict[str, Any]:
488 """获取凭证状态"""

Callers 7

creds_actionFunction · 0.45
creds_batch_actionFunction · 0.45
test_credentialFunction · 0.45
stream_requestFunction · 0.45
non_stream_requestFunction · 0.45

Calls 4

_ensure_initializedMethod · 0.95
_get_table_nameMethod · 0.95
debugMethod · 0.80
errorMethod · 0.80

Tested by 1

test_credentialFunction · 0.36