mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-08-14 03:02:14 +03:00
49 lines
1.3 KiB
TypeScript
49 lines
1.3 KiB
TypeScript
import { getDbInstance } from "./core";
|
|
|
|
const NOTION_NAMESPACE = "notion";
|
|
const NOTION_TOKEN_KEY = "integration_token";
|
|
|
|
type KeyValueRow = {
|
|
value?: string;
|
|
};
|
|
|
|
export function getNotionToken(): string | null {
|
|
try {
|
|
const db = getDbInstance();
|
|
const row = db
|
|
.prepare("SELECT value FROM key_value WHERE namespace = ? AND key = ?")
|
|
.get(NOTION_NAMESPACE, NOTION_TOKEN_KEY) as KeyValueRow | undefined;
|
|
return typeof row?.value === "string" ? JSON.parse(row.value) : null;
|
|
} catch {
|
|
return null;
|
|
}
|
|
}
|
|
|
|
export function setNotionToken(token: string): void {
|
|
try {
|
|
const db = getDbInstance();
|
|
db.prepare(
|
|
"INSERT OR IGNORE INTO key_value (namespace, key, value) VALUES (?, ?, ?)"
|
|
).run(NOTION_NAMESPACE, NOTION_TOKEN_KEY, JSON.stringify(token));
|
|
} catch {
|
|
// Non-fatal — token still works in-memory if persistence fails.
|
|
}
|
|
}
|
|
|
|
export function clearNotionToken(): void {
|
|
try {
|
|
const db = getDbInstance();
|
|
db.prepare("DELETE FROM key_value WHERE namespace = ? AND key = ?").run(
|
|
NOTION_NAMESPACE,
|
|
NOTION_TOKEN_KEY
|
|
);
|
|
} catch {
|
|
// Non-fatal.
|
|
}
|
|
}
|
|
|
|
export function getNotionConfig(): { token: string | null; connected: boolean } {
|
|
const token = getNotionToken();
|
|
return { token, connected: token !== null && token.length > 0 };
|
|
}
|