{"version":3,"file":"wursha-ngx-hadeethenc-api.mjs","sources":["../../../projects/ngx-hadeethenc-api/src/lib/ngx-hadeethenc-api.service.ts","../../../projects/ngx-hadeethenc-api/src/public-api.ts","../../../projects/ngx-hadeethenc-api/src/wursha-ngx-hadeethenc-api.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport {\n    categoriesResponse,\n    hadeethsListResponse,\n    hadeethsOneResponse,\n    languageResponse,\n} from './ngx-hadeethenc-api.model';\n\n/**\n * an Angular api client for hadeethenc.com\n */\n@Injectable({\n    providedIn: 'root',\n})\nexport class NgxHadeethencApiService {\n    private baseUrl = 'https://hadeethenc.com/api/v1';\n\n    constructor(private http: HttpClient) {}\n\n    /**\n     * List all available languages for HadeethEnc.com\n     * @returns json object containing all available languages with their iso codes and native names.\n     */\n    public getLanguages(): Observable<languageResponse[]> {\n        const url = `${this.baseUrl}/languages`;\n        return this.http.get<languageResponse[]>(url);\n    }\n\n    /**\n     * List all categories by language code.\n     * @param language language iso code\n     * @returns array of json objects each object represents a category.\n     */\n    public getCategoriesList(\n        language: string,\n    ): Observable<categoriesResponse[]> {\n        const url = `${this.baseUrl}/categories/list/?language=${language}`;\n        return this.http.get<categoriesResponse[]>(url);\n    }\n\n    /**\n     * List root categories by language code.\n     * @param language language iso code\n     * @returns root categories (main categories) in specific language, it accepts language iso code and returns json array of objects each object represents a root category.\n     */\n    public getCategoriesRoots(\n        language: string,\n    ): Observable<categoriesResponse[]> {\n        const url = `${this.baseUrl}/categories/roots/?language=${language}`;\n        return this.http.get<categoriesResponse[]>(url);\n    }\n\n    /**\n     * List Hadeeths by category id and language iso code.\n     * @param p language iso code, category id, page number (optional, defaults to 1) ,Hadeeths per page(optional, defaults to 20)\n     * @returns json object containing \"data\" object which contains array of json objects each object represents a Hadeeth basic information (id, title, translations iso codes), the second object is \"meta\" containing meta data required for pagination.\n     */\n    public getHadeethsList(p: {\n        /**\n         * language iso code\n         */\n        language: string;\n        categoryId: string;\n        /**\n         * page number, optional, defaults to 1\n         */\n        page?: string;\n        /**\n         * Hadeeths per page, optional, defaults to 20\n         */\n        perPage?: string;\n    }): Observable<hadeethsListResponse> {\n        const url = `${this.baseUrl}/hadeeths/list/?language=${p.language}&category_id=${p.categoryId}&page=${p.page}&per_page=${p.perPage}`;\n        return this.http.get<hadeethsListResponse>(url);\n    }\n\n    /**\n     * Get single Hadeeth details by Hadeeth id and language iso code.\n     * @param p language iso code, hadeeth id\n     * @returns The response differs when the language is \"Arabic\" or not, if it's Arabic then it returns all Hadeeth data (id, title, Hadeeth text (matn), explanation, hints (fawaed), word meaning and references), if non Arabic it returns translated parts (id, title, Hadeeth text (matn), explanation and hints (if translated), it doesnt return reference nor word meaning as they are not translated.\n     */\n    public getHadeethsOne(p: {\n        /**\n         * language iso code\n         */\n        language: string;\n        /**\n         * hadeeth id\n         */\n        id: string;\n    }): Observable<hadeethsOneResponse> {\n        const url = `${this.baseUrl}/hadeeths/one/?language=${p.language}&id=${p.id}`;\n        return this.http.get<hadeethsOneResponse>(url);\n    }\n}\n","/*\n * Public API Surface of ngx-hadeethenc-api\n */\n\nexport * from './lib/ngx-hadeethenc-api.service';\nexport * from './lib/ngx-hadeethenc-api.model';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;AAUA;;AAEG;MAIU,uBAAuB,CAAA;AAGhC,IAAA,WAAA,CAAoB,IAAgB,EAAA;QAAhB,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QAF5B,IAAO,CAAA,OAAA,GAAG,+BAA+B,CAAC;KAEV;AAExC;;;AAGG;IACI,YAAY,GAAA;AACf,QAAA,MAAM,GAAG,GAAG,CAAA,EAAG,IAAI,CAAC,OAAO,YAAY,CAAC;QACxC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAqB,GAAG,CAAC,CAAC;KACjD;AAED;;;;AAIG;AACI,IAAA,iBAAiB,CACpB,QAAgB,EAAA;QAEhB,MAAM,GAAG,GAAG,CAAG,EAAA,IAAI,CAAC,OAAO,CAAA,2BAAA,EAA8B,QAAQ,CAAA,CAAE,CAAC;QACpE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAuB,GAAG,CAAC,CAAC;KACnD;AAED;;;;AAIG;AACI,IAAA,kBAAkB,CACrB,QAAgB,EAAA;QAEhB,MAAM,GAAG,GAAG,CAAG,EAAA,IAAI,CAAC,OAAO,CAAA,4BAAA,EAA+B,QAAQ,CAAA,CAAE,CAAC;QACrE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAuB,GAAG,CAAC,CAAC;KACnD;AAED;;;;AAIG;AACI,IAAA,eAAe,CAAC,CActB,EAAA;QACG,MAAM,GAAG,GAAG,CAAG,EAAA,IAAI,CAAC,OAAO,CAAA,yBAAA,EAA4B,CAAC,CAAC,QAAQ,CAAA,aAAA,EAAgB,CAAC,CAAC,UAAU,CAAS,MAAA,EAAA,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,OAAO,CAAA,CAAE,CAAC;QACrI,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAuB,GAAG,CAAC,CAAC;KACnD;AAED;;;;AAIG;AACI,IAAA,cAAc,CAAC,CASrB,EAAA;AACG,QAAA,MAAM,GAAG,GAAG,CAAG,EAAA,IAAI,CAAC,OAAO,CAAA,wBAAA,EAA2B,CAAC,CAAC,QAAQ,CAAO,IAAA,EAAA,CAAC,CAAC,EAAE,EAAE,CAAC;QAC9E,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAsB,GAAG,CAAC,CAAC;KAClD;8GA/EQ,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,cAFpB,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAET,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAHnC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;;ACfD;;AAEG;;ACFH;;AAEG;;;;"}