Skip to content
This repository was archived by the owner on May 21, 2026. It is now read-only.

Commit 31dff72

Browse files
add Quotes
1 parent 14b543e commit 31dff72

6 files changed

Lines changed: 42 additions & 18 deletions

File tree

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,3 +60,5 @@ backend/src/main/resources/application.properties
6060
/imageDB
6161
/frontend
6262
frontend/build.zip
63+
64+
myqueries.sql

src/main/java/com/espacogeek/geek/controllers/MediaController.java

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,11 @@
99

1010
import com.espacogeek.geek.data.MediaDataController;
1111
import com.espacogeek.geek.data.api.MediaApi;
12-
import com.espacogeek.geek.data.api.QuoteApi;
1312
import com.espacogeek.geek.models.MediaModel;
1413
import com.espacogeek.geek.services.MediaCategoryService;
1514
import com.espacogeek.geek.services.MediaService;
1615
import com.espacogeek.geek.services.TypeReferenceService;
1716
import com.espacogeek.geek.types.MediaPage;
18-
import com.espacogeek.geek.types.QuoteArtwork;
1917
import com.espacogeek.geek.utils.Utils;
2018
import com.espacogeek.geek.exception.GenericException;
2119

@@ -35,17 +33,6 @@ public class MediaController {
3533
private TypeReferenceService typeReferenceService;
3634
@Autowired
3735
private MediaCategoryService mediaCategoryService;
38-
@Autowired
39-
private QuoteApi quoteApi;
40-
41-
@QueryMapping(name = "quote")
42-
public QuoteArtwork getQuoteAndRandomArtwork() {
43-
var quote = quoteApi.getRandomQuote();
44-
//String artwork = mediaService.randomArtwork().orElseThrow(() -> new GenericException("Artwork not found"));
45-
46-
//return new QuoteArtwork(quote.getQuote(), quote.getAuthor(), artwork);
47-
return new QuoteArtwork(quote.getQuote(), quote.getAuthor(), "artwork");
48-
}
4936

5037
/**
5138
* Finds a MediaModel object by its ID.
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package com.espacogeek.geek.controllers;
2+
3+
import org.springframework.beans.factory.annotation.Autowired;
4+
import org.springframework.graphql.data.method.annotation.QueryMapping;
5+
import org.springframework.stereotype.Controller;
6+
7+
import com.espacogeek.geek.data.api.QuoteApi;
8+
import com.espacogeek.geek.exception.GenericException;
9+
import com.espacogeek.geek.services.MediaService;
10+
import com.espacogeek.geek.types.QuoteArtwork;
11+
12+
@Controller
13+
public class QuoteController {
14+
@Autowired
15+
private QuoteApi quoteApi;
16+
@Autowired
17+
private MediaService mediaService;
18+
19+
/**
20+
* Fetches a random quote along with a random artwork URL.
21+
*
22+
* @return A QuoteArtwork object containing the quote, author, and artwork URL.
23+
* @throws GenericException if no artwork is found.
24+
*/
25+
@QueryMapping(name = "quote")
26+
public QuoteArtwork getQuoteAndRandomArtwork() {
27+
var quote = quoteApi.getRandomQuote();
28+
String artwork = mediaService.randomArtwork().orElseThrow(() -> new GenericException("Artwork not found"));
29+
30+
return new QuoteArtwork(quote.getQuote(), quote.getAuthor(), artwork);
31+
}
32+
}

src/main/java/com/espacogeek/geek/data/api/impl/QuoteApiImpl.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@
2525
import okhttp3.Request;
2626
import okhttp3.Response;
2727

28-
@Component("quoteController")
29-
@Qualifier("quoteController")
28+
@Component("quoteApiImpl")
29+
@Qualifier("quoteApiImpl")
3030
public class QuoteApiImpl implements QuoteApi {
3131
@Autowired
3232
private ApiKeyService apiKeyService;

src/main/java/com/espacogeek/geek/services/MediaService.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,5 +86,10 @@ public interface MediaService {
8686
Optional<MediaModel> findByIdEager(Integer id);
8787

8888

89+
/**
90+
* Returns a random artwork URL if available.
91+
*
92+
* @return An Optional containing a random artwork URL, or an empty Optional if no artwork is found.
93+
*/
8994
Optional<String> randomArtwork();
9095
}

src/main/java/com/espacogeek/geek/services/impl/MediaServiceImpl.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,7 @@ private String capitalize(String str) {
188188
* @see MediaService#randomArtwork()
189189
*/
190190
@Override
191+
@Transactional
191192
public Optional<String> randomArtwork() {
192193
long total = mediaRepository.count();
193194
if (total <= 0) return Optional.empty();
@@ -226,9 +227,6 @@ public Optional<String> randomArtwork() {
226227
case MediaDataController.SERIE_ID:
227228
updated = Utils.updateMedia(Arrays.asList(media), serieController).getFirst();
228229
break;
229-
default:
230-
// Unsupported category for artwork update in this flow, skip
231-
break;
232230
}
233231

234232
if (updated != null && updated.getBanner() != null && !updated.getBanner().isEmpty()) {

0 commit comments

Comments
 (0)