summaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/com/mavlushechka/a1qa/utils/JSONPlaceholderAPI.java54
1 files changed, 54 insertions, 0 deletions
diff --git a/src/main/java/com/mavlushechka/a1qa/utils/JSONPlaceholderAPI.java b/src/main/java/com/mavlushechka/a1qa/utils/JSONPlaceholderAPI.java
new file mode 100644
index 0000000..17e2a87
--- /dev/null
+++ b/src/main/java/com/mavlushechka/a1qa/utils/JSONPlaceholderAPI.java
@@ -0,0 +1,54 @@
+package com.mavlushechka.a1qa.utils;
+
+import com.mavlushechka.a1qa.models.Post;
+import com.mavlushechka.a1qa.models.User;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+public class JSONPlaceholderAPI {
+
+ public static Post getPost(String spec) throws IOException {
+ return getObject(spec, Post.class);
+ }
+
+ public static List<Post> getPosts(String spec) throws IOException {
+ return getObjects(spec, Post.class);
+ }
+
+ public static Post postPost(String spec, Post post) throws IOException {
+ return postObject(spec, post, Post.class);
+ }
+
+ public static User getUser(String spec) throws IOException {
+ return getObject(spec, User.class);
+ }
+
+ public static List<User> getUsers(String spec) throws IOException {
+ return getObjects(spec, User.class);
+ }
+
+ public static User postUser(String spec, User user) throws IOException {
+ return postObject(spec, user, User.class);
+ }
+
+ private static <T> T getObject(String spec, Class<T> classOfObject) throws IOException {
+ return JSONParser.convertToObject(URLConnectionManager.get(spec), classOfObject);
+ }
+
+ private static <T> List<T> getObjects(String spec, Class<T> classOfObject) throws IOException {
+ Object[] objects = JSONParser.convertArray(URLConnectionManager.get(spec), classOfObject);
+ ArrayList<T> objectsArrayList = new ArrayList<>();
+
+ for (Object object : objects) {
+ objectsArrayList.add((T) object);
+ }
+ return objectsArrayList.stream().toList();
+ }
+
+ private static <T> T postObject(String spec, T object, Class<T> classOfObject) throws IOException {
+ return JSONParser.convertToObject(URLConnectionManager.post(spec, JSONParser.convertToJSON(object)), classOfObject);
+ }
+
+}