import type { Response } from 'express';

import { AUTH_COOKIE_NAMES } from '../../../common/auth/auth.constants';
import { getAuthCookieOptions, getCookieMaxAge } from './auth-token.helper';

export function setAuthCookies(
  response: Response,
  accessToken: string,
  refreshToken: string,
) {
  const options = getAuthCookieOptions();

  response.cookie(AUTH_COOKIE_NAMES.accessToken, accessToken, {
    ...options,
    maxAge: getCookieMaxAge(process.env.JWT_ACCESS_EXPIRES_IN ?? '15m'),
  });

  response.cookie(AUTH_COOKIE_NAMES.refreshToken, refreshToken, {
    ...options,
    maxAge: getCookieMaxAge(process.env.JWT_REFRESH_EXPIRES_IN ?? '7d'),
  });
}

export function clearAuthCookies(response: Response) {
  const options = getAuthCookieOptions();

  response.clearCookie(AUTH_COOKIE_NAMES.accessToken, options);
  response.clearCookie(AUTH_COOKIE_NAMES.refreshToken, options);
}
