/* * Copyright (C) 2026 Fluxer Contributors * * This file is part of Fluxer. * * Fluxer is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Fluxer is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with Fluxer. If not, see . */ import {APIErrorCodes} from '~/constants/API'; import {FluxerAPIError} from './FluxerAPIError'; export class HarvestOnCooldownError extends FluxerAPIError { constructor({retryAfter}: {retryAfter: Date}) { const retryAfterSeconds = Math.ceil((retryAfter.getTime() - Date.now()) / 1000); super({ code: APIErrorCodes.HARVEST_ON_COOLDOWN, message: 'You can only request a data package once every 7 days.', status: 429, data: { retry_after: retryAfterSeconds, }, headers: { 'Retry-After': retryAfterSeconds.toString(), }, }); } }