import { DataSource } from 'typeorm';
import { UserEntity, MetaEntity } from '../../../entities';
import { rowToUser } from '../../mappers';

export async function handleGetCurrentUser(dataSource: DataSource) {
  const metaRepo = dataSource.getRepository(MetaEntity);
  const metaRow = await metaRepo.findOne({ where: { key: 'currentUserId' } });

  if (!metaRow?.value)
    return null;

  const userRepo = dataSource.getRepository(UserEntity);
  const userRow = await userRepo.findOne({ where: { id: metaRow.value } });

  return userRow ? rowToUser(userRow) : null;
}
