made endpoints better
This commit is contained in:
@@ -6,36 +6,39 @@ import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.HttpEntity;
|
||||
import org.springframework.stereotype.Controller;
|
||||
|
||||
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 java.io.IOException;
|
||||
import java.util.LinkedList;
|
||||
|
||||
@Controller
|
||||
@RestController
|
||||
@RequestMapping("/recipes")
|
||||
public class SpoonacularController {
|
||||
private int nextRecepies=10;
|
||||
private int nextRecepiesForOneRandom=20;
|
||||
@Autowired
|
||||
private ItemRepository itemRepository;
|
||||
@Autowired
|
||||
private ApiService service;
|
||||
private SpoonacularApiService service;
|
||||
|
||||
@GetMapping("api/forFridge")
|
||||
@GetMapping("forFridge")
|
||||
public HttpEntity<JSONArray> getForFridge() throws IOException, InterruptedException, JSONException {
|
||||
return new HttpEntity<JSONArray>(service.getForIngridients(itemRepository.findAll(), nextRecepies));
|
||||
}
|
||||
|
||||
@GetMapping("api/random")
|
||||
@GetMapping("random")
|
||||
public HttpEntity<JSONArray> getRandom() throws IOException, InterruptedException, JSONException {
|
||||
return new HttpEntity<JSONArray>(service.getRandom(new LinkedList<>(), nextRecepies));
|
||||
//when user has food preferences apply instead of linked list.
|
||||
}
|
||||
|
||||
@GetMapping("api/oneFridge" )
|
||||
@GetMapping("oneFridge")
|
||||
public HttpEntity<JSONObject> getOneFridge() throws IOException, InterruptedException, JSONException {
|
||||
return new HttpEntity<JSONObject>(service.getOneForIngridients(itemRepository.findAll(), nextRecepiesForOneRandom));
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@ package whattocook.implementation;
|
||||
|
||||
import org.springframework.stereotype.Service;
|
||||
import whattocook.models.Item;
|
||||
import whattocook.services.ApiService;
|
||||
import whattocook.services.SpoonacularApiService;
|
||||
import org.json.*;
|
||||
|
||||
import java.io.IOException;
|
||||
@@ -15,7 +15,7 @@ import java.util.Iterator;
|
||||
import java.util.Random;
|
||||
|
||||
@Service
|
||||
public class ApiServiceImpl implements ApiService {
|
||||
public class SpoonacularApiServiceImpl implements SpoonacularApiService {
|
||||
private final String KEY = "85cc006d508b447a88e659cd748899db";
|
||||
private final String RANKING = "2";
|
||||
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());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -5,7 +5,7 @@ import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
import whattocook.models.Item;
|
||||
|
||||
public interface ApiService {
|
||||
public interface SpoonacularApiService {
|
||||
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;
|
||||
|
||||
Reference in New Issue
Block a user