const modules = require("./module"); const config = require("../config"); const axios = require("axios"); class GoodreadsBookSearch { getBookDetails = async (isbn) => { const headers = config.headers; const url = encodeURI(config.goodreadsBaseUrl + isbn); try { return new Promise((resolve, reject) => { setTimeout(async () => { try { const response = await axios.get(url, { headers }); if (!response.data) { throw new Error("Detay bilgisi bulunamadı!"); } const details = await modules.extractBookDetails( response.data, isbn, ); resolve(details); } catch (error) { reject(error); } }, config.fetchTimeout); }); } catch (error) { throw new Error("Hata: " + error.message); } }; } module.exports = GoodreadsBookSearch; (async () => { try { const BookSearch = new GoodreadsBookSearch(); const bookDetails = await BookSearch.getBookDetails("863173540X"); console.log(bookDetails); } catch (error) { console.log(error.message); } })();