UNPKG

@meisens1/lotr-sdk

Version:
93 lines (89 loc) 2.91 kB
const axios = require('axios'); const Quote = require('../models/quote'); const { baseUrl, accessToken } = require('../config'); //getQuotes returns a list of movies which are paginated by the default values page 1, limit 100 async function getQuotes(aToken = accessToken, page = 1, limit = 100) { try { const response = await axios.get(`${baseUrl}/quote`, { headers: { Authorization: `Bearer ${aToken}`, }, params: { page, limit, }, }); const { docs, total, limit: responseLimit, offset, page: currentPage, pages } = response.data; const quotes = docs.map(quote => new Quote( quote._id, quote.dialog, quote.movie )); return { quotes, pagination: { total, limit: responseLimit, offset, page: currentPage, pages, }, }; } catch (error) { console.error('Error retrieving quotes:', error); throw error; } } //getQuoteByMovieId returns a list of quotes by movieId async function getQuoteByMovieId(aToken = accessToken, movieId, page = 1, limit = 2) { try { const response = await axios.get(`${baseUrl}/movie/${movieId}/quote`, { headers: { Authorization: `Bearer ${aToken}`, }, params: { page, limit, }, }); const { docs, total, limit: responseLimit, offset, page: currentPage, pages } = response.data; const quotes = docs.map(quote => new Quote( quote._id, quote.dialog, quote.movie )); return { quotes, pagination: { total, limit: responseLimit, offset, page: currentPage, pages, }, }; } catch (error) { console.error(`Error retrieving quotes for movie with ID ${movieId}:`, error); throw error; } } //getQuoteById returns a quote with the specificed id async function getQuoteById(aToken = accessToken, id) { try { const response = await axios.get(`${baseUrl}/quote/${id}`, { headers: { Authorization: `Bearer ${aToken}`, }, }); const quote = response.data; return response.data.docs.map(quote => new Quote( quote._id, quote.dialog, quote.movie )); } catch (error) { console.error(`Error retrieving quote with ID ${id}:`, error); throw error; } } module.exports = { getQuotes, getQuoteByMovieId, getQuoteById };