completionId: cgen-311a6d86a8744b9894b69455e01235ae
cgen-311a6d86a8744b9894b69455e01235ae
This commit is contained in:
parent
0c2c1a222c
commit
0180c560cc
1 changed files with 0 additions and 87 deletions
|
|
@ -1,87 +0,0 @@
|
||||||
/**
|
|
||||||
* Identifier Resolver
|
|
||||||
*
|
|
||||||
* Utilities to resolve usernames or UUIDs to user data.
|
|
||||||
* Enables username-first lookup with UUID fallback across the app.
|
|
||||||
*/
|
|
||||||
|
|
||||||
const API_BASE = typeof window !== "undefined" ? window.location.origin : "";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Check if a string is a valid UUID
|
|
||||||
*/
|
|
||||||
export function isUUID(str: string): boolean {
|
|
||||||
const uuidRegex = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
||||||
return uuidRegex.test(str);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Resolve an identifier (username or UUID) to a user/creator object
|
|
||||||
* Tries username first, then UUID fallback
|
|
||||||
*/
|
|
||||||
export async function resolveIdentifierToCreator(
|
|
||||||
identifier: string,
|
|
||||||
): Promise<{ id: string; username: string; [key: string]: any } | null> {
|
|
||||||
if (!identifier) return null;
|
|
||||||
|
|
||||||
try {
|
|
||||||
// Try username first (most common case)
|
|
||||||
const usernameResponse = await fetch(`${API_BASE}/api/creators/${identifier}`);
|
|
||||||
if (usernameResponse.ok) {
|
|
||||||
return await usernameResponse.json();
|
|
||||||
}
|
|
||||||
|
|
||||||
// If username lookup failed and identifier is a UUID, try UUID lookup
|
|
||||||
if (isUUID(identifier)) {
|
|
||||||
const uuidResponse = await fetch(`${API_BASE}/api/creators/user/${identifier}`);
|
|
||||||
if (uuidResponse.ok) {
|
|
||||||
return await uuidResponse.json();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
} catch (error) {
|
|
||||||
console.error("[Identifier Resolver] Error resolving identifier:", error);
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Resolve an identifier to a user by ID
|
|
||||||
*/
|
|
||||||
export async function resolveIdentifierToUserId(identifier: string): Promise<string | null> {
|
|
||||||
if (!identifier) return null;
|
|
||||||
|
|
||||||
if (isUUID(identifier)) {
|
|
||||||
// If it's already a UUID, return it
|
|
||||||
return identifier;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Try to resolve username to user ID
|
|
||||||
try {
|
|
||||||
const creator = await resolveIdentifierToCreator(identifier);
|
|
||||||
return creator?.id || null;
|
|
||||||
} catch {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Resolve an identifier to a username
|
|
||||||
*/
|
|
||||||
export async function resolveIdentifierToUsername(identifier: string): Promise<string | null> {
|
|
||||||
if (!identifier) return null;
|
|
||||||
|
|
||||||
if (!isUUID(identifier)) {
|
|
||||||
// If it's not a UUID, assume it's already a username
|
|
||||||
return identifier;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Try to resolve UUID to username
|
|
||||||
try {
|
|
||||||
const creator = await resolveIdentifierToCreator(identifier);
|
|
||||||
return creator?.username || null;
|
|
||||||
} catch {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Loading…
Reference in a new issue