31 lines
1.1 KiB
TypeScript
31 lines
1.1 KiB
TypeScript
import { NextResponse } from "next/server";
|
|
import { getActiveAccountConnectionSettings } from "@/lib/account-connection-settings";
|
|
import { getActiveAccountProfile } from "@/lib/account-context";
|
|
import {
|
|
accountHasThreadsToken,
|
|
isThreadsAppConfigured,
|
|
maskToken,
|
|
} from "@/lib/threads-api";
|
|
import { apiRouteErrorResponse } from "@/lib/auth/api";
|
|
|
|
export async function GET() {
|
|
try {
|
|
const [account, connection] = await Promise.all([
|
|
getActiveAccountProfile(),
|
|
getActiveAccountConnectionSettings(),
|
|
]);
|
|
return NextResponse.json({
|
|
connected: accountHasThreadsToken(account),
|
|
publishViaApi: connection.publishViaApi,
|
|
accountId: account?.id ?? null,
|
|
accountName: account?.displayName ?? account?.username ?? null,
|
|
userId: account?.threadsUserId ?? null,
|
|
tokenExpiresAt: account?.threadsTokenExpiresAt?.toISOString() ?? null,
|
|
tokenMasked: maskToken(account?.threadsAccessToken),
|
|
appIdConfigured: isThreadsAppConfigured(),
|
|
});
|
|
} catch (error) {
|
|
return apiRouteErrorResponse(error, "threads/status");
|
|
}
|
|
}
|