import axios from "axios";

export default class DailyVerseProvider {
    private static readonly apiEndpoint: string = "https://beta.ourmanna.com/api/v1/get?format=json&order=daily";
    private static verse: DailyVerse | undefined = undefined;

    public static async provide(): Promise<DailyVerse | null> {
        if (!this.verse) {
            const response = await axios.get<DailyVerseResponse>(this.apiEndpoint, {withCredentials: false});
            this.verse = response.data.verse;
        }

        return this.verse;
    }
}

export interface DailyVerseDetails {
    text: string;
    reference: string;
    version: string;
    verseurl: string;
}

export interface DailyVerse {
    details: DailyVerseDetails;
    notice: string;
}

interface DailyVerseResponse {
    verse: DailyVerse;
}
