made endpoints better

This commit is contained in:
Bruno
2022-06-17 20:07:00 +02:00
parent 8b472a6d61
commit 93943149ac
3 changed files with 14 additions and 17 deletions

View File

@@ -6,36 +6,39 @@ import org.json.JSONException;
import org.json.JSONObject; import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpEntity; import org.springframework.http.HttpEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import whattocook.services.ApiService; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import whattocook.services.SpoonacularApiService;
import whattocook.repositories.ItemRepository; import whattocook.repositories.ItemRepository;
import java.io.IOException; import java.io.IOException;
import java.util.LinkedList; import java.util.LinkedList;
@Controller @RestController
@RequestMapping("/recipes")
public class SpoonacularController { public class SpoonacularController {
private int nextRecepies=10; private int nextRecepies=10;
private int nextRecepiesForOneRandom=20; private int nextRecepiesForOneRandom=20;
@Autowired @Autowired
private ItemRepository itemRepository; private ItemRepository itemRepository;
@Autowired @Autowired
private ApiService service; private SpoonacularApiService service;
@GetMapping("api/forFridge") @GetMapping("forFridge")
public HttpEntity<JSONArray> getForFridge() throws IOException, InterruptedException, JSONException { public HttpEntity<JSONArray> getForFridge() throws IOException, InterruptedException, JSONException {
return new HttpEntity<JSONArray>(service.getForIngridients(itemRepository.findAll(), nextRecepies)); return new HttpEntity<JSONArray>(service.getForIngridients(itemRepository.findAll(), nextRecepies));
} }
@GetMapping("api/random") @GetMapping("random")
public HttpEntity<JSONArray> getRandom() throws IOException, InterruptedException, JSONException { public HttpEntity<JSONArray> getRandom() throws IOException, InterruptedException, JSONException {
return new HttpEntity<JSONArray>(service.getRandom(new LinkedList<>(), nextRecepies)); return new HttpEntity<JSONArray>(service.getRandom(new LinkedList<>(), nextRecepies));
//when user has food preferences apply instead of linked list. //when user has food preferences apply instead of linked list.
} }
@GetMapping("api/oneFridge" ) @GetMapping("oneFridge")
public HttpEntity<JSONObject> getOneFridge() throws IOException, InterruptedException, JSONException { public HttpEntity<JSONObject> getOneFridge() throws IOException, InterruptedException, JSONException {
return new HttpEntity<JSONObject>(service.getOneForIngridients(itemRepository.findAll(), nextRecepiesForOneRandom)); return new HttpEntity<JSONObject>(service.getOneForIngridients(itemRepository.findAll(), nextRecepiesForOneRandom));
} }

View File

@@ -3,7 +3,7 @@ package whattocook.implementation;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import whattocook.models.Item; import whattocook.models.Item;
import whattocook.services.ApiService; import whattocook.services.SpoonacularApiService;
import org.json.*; import org.json.*;
import java.io.IOException; import java.io.IOException;
@@ -15,7 +15,7 @@ import java.util.Iterator;
import java.util.Random; import java.util.Random;
@Service @Service
public class ApiServiceImpl implements ApiService { public class SpoonacularApiServiceImpl implements SpoonacularApiService {
private final String KEY = "85cc006d508b447a88e659cd748899db"; private final String KEY = "85cc006d508b447a88e659cd748899db";
private final String RANKING = "2"; private final String RANKING = "2";
private final boolean IGNOREPANTRY = true; private final boolean IGNOREPANTRY = true;
@@ -82,11 +82,5 @@ public class ApiServiceImpl implements ApiService {
public static void main(String[] args) throws IOException, InterruptedException {
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.spoonacular.com/recipes/random?apiKey=" + "85cc006d508b447a88e659cd748899db" + "&number=" + 10))
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());
}
} }

View File

@@ -5,7 +5,7 @@ import org.json.JSONException;
import org.json.JSONObject; import org.json.JSONObject;
import whattocook.models.Item; import whattocook.models.Item;
public interface ApiService { public interface SpoonacularApiService {
JSONArray getForIngridients(Iterable<Item> items, int number) throws java.io.IOException, InterruptedException, JSONException; JSONArray getForIngridients(Iterable<Item> items, int number) throws java.io.IOException, InterruptedException, JSONException;
JSONObject getOneForIngridients(Iterable<Item> items, int number) throws java.io.IOException, InterruptedException, JSONException; JSONObject getOneForIngridients(Iterable<Item> items, int number) throws java.io.IOException, InterruptedException, JSONException;