import { readConfig, clearConfig } from '../config/store';
import { ApiError, revokeDevice } from '../api/client';

export async function logout(): Promise<void> {
  const config = readConfig();

  if (!config) {
    console.log('Not logged in.');

    return;
  }

  try {
    await revokeDevice(config.apiBaseUrl, config.deviceToken);
  } catch (error) {
    if (error instanceof ApiError) {
      console.warn(`Could not reach API to revoke the device token (${error.message}). Clearing local credentials anyway.`);
    }
  }

  clearConfig();
  console.log('Logged out. Local credentials removed.');
}
