Skip to content

Commit 83e34c7

Browse files
Merge pull request #106 from rafia-codes/fix-api
fix-api
2 parents 95aac60 + 63e0519 commit 83e34c7

File tree

2 files changed

+50
-27
lines changed

2 files changed

+50
-27
lines changed

src/pages/activities/RandomAnimeQuote.js

Lines changed: 23 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import { useEffect, useState } from "react";
2-
import axios from "axios";
32
import "../../styles/pages/activities/RandomQuote.css";
43

54
export const RandomAnimeQuote = () => {
@@ -9,11 +8,21 @@ export const RandomAnimeQuote = () => {
98
const generateQuote = async () => {
109
try {
1110
setQuote(null);
12-
const res = await axios.get("/api/v1/quotes/random");
13-
setQuote(res.data.data);
14-
} catch (error) {
15-
console.log(error);
16-
setError(error);
11+
setError(null);
12+
13+
const response = await fetch("https://animotto-api.onrender.com/api/quotes/random");
14+
if (!response.ok) throw new Error("Network response was not ok");
15+
16+
const data = await response.json();
17+
18+
setQuote({
19+
quote: data.quote,
20+
character: data.character,
21+
anime: data.anime.name || data.anime.altName || "Unknown"
22+
});
23+
} catch (err) {
24+
console.error(err);
25+
setError(err);
1726
}
1827
};
1928

@@ -27,26 +36,29 @@ export const RandomAnimeQuote = () => {
2736
<div className="description">
2837
Generate any random anime quote to get some inspiration!
2938
</div>
39+
3040
{quote && (
3141
<div className="rquote-content">
32-
<div className="rquote-quote">{quote.content}</div>
42+
<div className="rquote-quote">{quote.quote}</div>
3343
<div className="rquote-author">
34-
- {quote.character.name} ({quote.anime.name})
44+
- {quote.character} ({quote.anime})
3545
</div>
3646
</div>
3747
)}
48+
3849
{error && (
3950
<div className="rquote-content error">
40-
Too many requests have been sent to the API. Please try again after an
41-
hour.
51+
Error fetching quote. Please try again later.
4252
</div>
4353
)}
54+
4455
{!quote && !error && (
4556
<div className="spinner-wrapper">
4657
<div className="spinner"></div>
4758
</div>
4859
)}
49-
<button className="rquote-button" onClick={() => generateQuote()}>
60+
61+
<button className="rquote-button" onClick={generateQuote}>
5062
Generate Quote
5163
</button>
5264
</div>

src/pages/activities/RandomQuote.js

Lines changed: 27 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,23 @@ export const RandomQuote = () => {
88

99
const generateQuote = () => {
1010
setQuote(null);
11-
axios({
12-
method: "GET",
13-
url: "https://api.qutable.io/random",
14-
})
15-
.then((res) => setQuote(res.data))
16-
.catch((error) => setError(error));
11+
setError(null);
12+
13+
const url = "https://stoic-quotes.com/api/quote";
14+
const proxyUrl = `https://api.allorigins.win/get?url=${encodeURIComponent(
15+
url + `?t=${Date.now()}`
16+
)}`;
17+
18+
axios
19+
.get(proxyUrl)
20+
.then((res) => {
21+
// Parse the contents returned by the proxy
22+
const data = JSON.parse(res.data.contents);
23+
setQuote({ q: data.text, a: data.author });
24+
})
25+
.catch((err) => {
26+
setError(err);
27+
});
1728
};
1829

1930
useEffect(() => {
@@ -22,26 +33,26 @@ export const RandomQuote = () => {
2233

2334
return (
2435
<div className="rquote-root">
25-
<h1 class="header">Random Quote Generator</h1>
26-
<div class="description">
27-
Generate any random quote to get some inspiration!
36+
<h1 className="header">Random Quote Generator</h1>
37+
<div className="description">
38+
Get a random quote to inspire your day 💡
2839
</div>
40+
2941
{quote && (
3042
<div className="rquote-content">
31-
<div className="rquote-quote">{quote.content}</div>
32-
<div className="rquote-author">- {quote.author}</div>
33-
</div>
34-
)}
35-
{error && (
36-
<div className="rquote-content error">
37-
{error.message}
43+
<div className="rquote-quote">{quote.q}</div>
44+
<div className="rquote-author">{quote.a || "Unknown"}</div>
3845
</div>
3946
)}
47+
48+
{error && <div className="rquote-content error">{error.message}</div>}
49+
4050
{!quote && !error && (
4151
<div className="spinner-wrapper">
4252
<div className="spinner"></div>
4353
</div>
4454
)}
55+
4556
<button className="rquote-button" onClick={generateQuote}>
4657
Generate Quote
4758
</button>

0 commit comments

Comments
 (0)