Skip to content

Commit 8ab3c9e

Browse files
committed
added medium User rest api integration
1 parent 2b977f4 commit 8ab3c9e

File tree

5 files changed

+189
-0
lines changed

5 files changed

+189
-0
lines changed
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
package com.cevheri.blog.service.medium;
2+
3+
public class ApiError {
4+
private String code;
5+
private String message;
6+
7+
public String getCode() {
8+
return code;
9+
}
10+
11+
public void setCode(String code) {
12+
this.code = code;
13+
}
14+
15+
public String getMessage() {
16+
return message;
17+
}
18+
19+
public void setMessage(String message) {
20+
this.message = message;
21+
}
22+
23+
@Override
24+
public boolean equals(Object o) {
25+
if (this == o) return true;
26+
if (o == null || getClass() != o.getClass()) return false;
27+
28+
ApiError apiError = (ApiError) o;
29+
30+
if (code != null ? !code.equals(apiError.code) : apiError.code != null) return false;
31+
return message != null ? message.equals(apiError.message) : apiError.message == null;
32+
}
33+
34+
@Override
35+
public int hashCode() {
36+
int result = code != null ? code.hashCode() : 0;
37+
result = 31 * result + (message != null ? message.hashCode() : 0);
38+
return result;
39+
}
40+
41+
@Override
42+
public String toString() {
43+
return "ApiError{" +
44+
"code='" + code + '\'' +
45+
", message='" + message + '\'' +
46+
'}';
47+
}
48+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package com.cevheri.blog.service.medium;
2+
3+
public class Client {
4+
public static String ACCESS_KEY="Bearer 2418f8eabee116684110f01ec98631f35f7528a88c33312e9a339fb1e9de46ec9";
5+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package com.cevheri.blog.service.medium;
2+
3+
public class EndPoint {
4+
public static String BASE_URL="https://api.medium.com/v1";
5+
}
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
package com.cevheri.blog.service.medium;
2+
3+
import com.fasterxml.jackson.databind.ObjectMapper;
4+
import org.testcontainers.shaded.okhttp3.*;
5+
6+
import java.io.IOException;
7+
import java.util.Arrays;
8+
9+
public class UserApi {
10+
public static String AUTHOR_ID;
11+
private final String resourceUrl = "/me";
12+
private final String url = EndPoint.BASE_URL + resourceUrl;
13+
14+
public UserApi() {
15+
if(AUTHOR_ID==null){
16+
try{
17+
aboutMe();
18+
}catch (IOException ie){
19+
System.out.println(Arrays.toString(ie.getStackTrace()));
20+
}
21+
}
22+
}
23+
24+
private void aboutMe() throws IOException {
25+
OkHttpClient client = new OkHttpClient().newBuilder()
26+
.build();
27+
MediaType mediaType = MediaType.parse("text/plain");
28+
RequestBody body = RequestBody.create(mediaType, "");
29+
Request request = new Request.Builder()
30+
.url(url)
31+
.method("GET", body)
32+
.addHeader("accept", "application/json")
33+
.addHeader("Authorization", Client.ACCESS_KEY)
34+
.build();
35+
Response response = client.newCall(request).execute();
36+
37+
ObjectMapper objectMapper = new ObjectMapper();
38+
assert response.body() != null;
39+
UserModel userModel = objectMapper.readValue(response.body().string(), UserModel.class);
40+
AUTHOR_ID=userModel.getId();
41+
}
42+
43+
}
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
package com.cevheri.blog.service.medium;
2+
3+
import java.util.Objects;
4+
5+
public class UserModel {
6+
private String id;
7+
private String username;
8+
private String name;
9+
private String url;
10+
private String imageUrl;
11+
12+
13+
public String getId() {
14+
return id;
15+
}
16+
17+
public void setId(String id) {
18+
this.id = id;
19+
}
20+
21+
public String getUsername() {
22+
return username;
23+
}
24+
25+
public void setUsername(String username) {
26+
this.username = username;
27+
}
28+
29+
public String getName() {
30+
return name;
31+
}
32+
33+
public void setName(String name) {
34+
this.name = name;
35+
}
36+
37+
public String getUrl() {
38+
return url;
39+
}
40+
41+
public void setUrl(String url) {
42+
this.url = url;
43+
}
44+
45+
public String getImageUrl() {
46+
return imageUrl;
47+
}
48+
49+
public void setImageUrl(String imageUrl) {
50+
this.imageUrl = imageUrl;
51+
}
52+
53+
54+
@Override
55+
public boolean equals(Object o) {
56+
if (this == o) return true;
57+
if (o == null || getClass() != o.getClass()) return false;
58+
59+
UserModel userModel = (UserModel) o;
60+
61+
if (id != null ? !id.equals(userModel.id) : userModel.id != null) return false;
62+
if (username != null ? !username.equals(userModel.username) : userModel.username != null) return false;
63+
if (name != null ? !name.equals(userModel.name) : userModel.name != null) return false;
64+
if (url != null ? !url.equals(userModel.url) : userModel.url != null) return false;
65+
return imageUrl != null ? imageUrl.equals(userModel.imageUrl) : userModel.imageUrl == null;
66+
}
67+
68+
@Override
69+
public int hashCode() {
70+
int result = id != null ? id.hashCode() : 0;
71+
result = 31 * result + (username != null ? username.hashCode() : 0);
72+
result = 31 * result + (name != null ? name.hashCode() : 0);
73+
result = 31 * result + (url != null ? url.hashCode() : 0);
74+
result = 31 * result + (imageUrl != null ? imageUrl.hashCode() : 0);
75+
return result;
76+
}
77+
78+
@Override
79+
public String toString() {
80+
return "UserModel{" +
81+
"id='" + id + '\'' +
82+
", username='" + username + '\'' +
83+
", name='" + name + '\'' +
84+
", url='" + url + '\'' +
85+
", imageUrl='" + imageUrl + '\'' +
86+
'}';
87+
}
88+
}

0 commit comments

Comments
 (0)