Skip to content
This repository was archived by the owner on Aug 18, 2021. It is now read-only.

Commit e40ba66

Browse files
committed
update: Top Headline Done
1 parent 94bdba1 commit e40ba66

6 files changed

Lines changed: 350 additions & 13 deletions

File tree

frogonewsapi/src/main/java/com/frogobox/frogonewsapi/ConsumeNewsApi.kt

Lines changed: 167 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
package com.frogobox.frogonewsapi
22

33
import android.content.Context
4+
import com.frogobox.frogonewsapi.callback.NewsResultCallback
5+
import com.frogobox.frogonewsapi.data.response.ArticleResponse
6+
import com.frogobox.frogonewsapi.data.source.NewsDataSource
47
import com.frogobox.frogonewsapi.data.source.NewsRemoteDataSource
58
import com.frogobox.frogonewsapi.data.source.NewsRepository
69

@@ -28,4 +31,168 @@ class ConsumeNewsApi(private val apiKey: String) : ConsumeNewsApiView {
2831
override fun usingChuckInterceptor(context: Context) {
2932
newsRepository.usingChuckInterceptor(context)
3033
}
34+
35+
override fun getTopHeadlineByCountry(
36+
apiKey: String,
37+
country: String,
38+
callback: NewsResultCallback<ArticleResponse>
39+
) {
40+
newsRepository.getTopHeadlineByCountry(
41+
apiKey,
42+
country,
43+
object : NewsDataSource.GetRemoteCallback<ArticleResponse> {
44+
override fun onSuccess(data: ArticleResponse) {
45+
callback.getResultData(data)
46+
}
47+
48+
override fun onFailed(statusCode: Int, errorMessage: String?) {
49+
callback.failedResult(statusCode, errorMessage)
50+
}
51+
})
52+
}
53+
54+
override fun getTopHeadlineByCountry(
55+
apiKey: String,
56+
country: String,
57+
category: String,
58+
callback: NewsResultCallback<ArticleResponse>
59+
) {
60+
newsRepository.getTopHeadlineByCountry(
61+
apiKey,
62+
country,
63+
category,
64+
object : NewsDataSource.GetRemoteCallback<ArticleResponse> {
65+
override fun onSuccess(data: ArticleResponse) {
66+
callback.getResultData(data)
67+
}
68+
69+
override fun onFailed(statusCode: Int, errorMessage: String?) {
70+
callback.failedResult(statusCode, errorMessage)
71+
}
72+
})
73+
}
74+
75+
override fun getTopHeadlineBySource(
76+
apiKey: String,
77+
sources: String,
78+
callback: NewsResultCallback<ArticleResponse>
79+
) {
80+
newsRepository.getTopHeadlineBySource(
81+
apiKey,
82+
sources,
83+
object : NewsDataSource.GetRemoteCallback<ArticleResponse> {
84+
override fun onSuccess(data: ArticleResponse) {
85+
callback.getResultData(data)
86+
}
87+
88+
override fun onFailed(statusCode: Int, errorMessage: String?) {
89+
callback.failedResult(statusCode, errorMessage)
90+
}
91+
})
92+
}
93+
94+
override fun getTopHeadlineBySource(
95+
apiKey: String,
96+
sources: String,
97+
category: String,
98+
callback: NewsResultCallback<ArticleResponse>
99+
) {
100+
newsRepository.getTopHeadlineBySource(
101+
apiKey,
102+
sources,
103+
category,
104+
object : NewsDataSource.GetRemoteCallback<ArticleResponse> {
105+
override fun onSuccess(data: ArticleResponse) {
106+
callback.getResultData(data)
107+
}
108+
109+
override fun onFailed(statusCode: Int, errorMessage: String?) {
110+
callback.failedResult(statusCode, errorMessage)
111+
}
112+
})
113+
}
114+
115+
override fun getTopHeadlineByQ(
116+
apiKey: String,
117+
q: String,
118+
callback: NewsResultCallback<ArticleResponse>
119+
) {
120+
newsRepository.getTopHeadlineByQ(
121+
apiKey,
122+
q,
123+
object : NewsDataSource.GetRemoteCallback<ArticleResponse> {
124+
override fun onSuccess(data: ArticleResponse) {
125+
callback.getResultData(data)
126+
}
127+
128+
override fun onFailed(statusCode: Int, errorMessage: String?) {
129+
callback.failedResult(statusCode, errorMessage)
130+
}
131+
})
132+
}
133+
134+
override fun getTopHeadlineByQ(
135+
apiKey: String,
136+
q: String,
137+
category: String,
138+
callback: NewsResultCallback<ArticleResponse>
139+
) {
140+
newsRepository.getTopHeadlineByQ(
141+
apiKey,
142+
q,
143+
category,
144+
object : NewsDataSource.GetRemoteCallback<ArticleResponse> {
145+
override fun onSuccess(data: ArticleResponse) {
146+
callback.getResultData(data)
147+
}
148+
149+
override fun onFailed(statusCode: Int, errorMessage: String?) {
150+
callback.failedResult(statusCode, errorMessage)
151+
}
152+
})
153+
}
154+
155+
override fun getTopHeadlineByCategory(
156+
apiKey: String,
157+
category: String,
158+
callback: NewsResultCallback<ArticleResponse>
159+
) {
160+
newsRepository.getTopHeadlineByCategory(
161+
apiKey,
162+
category,
163+
object : NewsDataSource.GetRemoteCallback<ArticleResponse> {
164+
override fun onSuccess(data: ArticleResponse) {
165+
callback.getResultData(data)
166+
}
167+
168+
override fun onFailed(statusCode: Int, errorMessage: String?) {
169+
callback.failedResult(statusCode, errorMessage)
170+
}
171+
})
172+
}
173+
174+
override fun getTopHeadline(
175+
apiKey: String,
176+
q: String?,
177+
sources: String?,
178+
category: String?,
179+
country: String?,
180+
callback: NewsResultCallback<ArticleResponse>
181+
) {
182+
newsRepository.getTopHeadline(
183+
apiKey,
184+
q,
185+
sources,
186+
category,
187+
country,
188+
object : NewsDataSource.GetRemoteCallback<ArticleResponse> {
189+
override fun onSuccess(data: ArticleResponse) {
190+
callback.getResultData(data)
191+
}
192+
193+
override fun onFailed(statusCode: Int, errorMessage: String?) {
194+
callback.failedResult(statusCode, errorMessage)
195+
}
196+
})
197+
}
31198
}

frogonewsapi/src/main/java/com/frogobox/frogonewsapi/ConsumeNewsApiView.kt

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package com.frogobox.frogonewsapi
22

33
import android.content.Context
4+
import com.frogobox.frogonewsapi.callback.NewsResultCallback
5+
import com.frogobox.frogonewsapi.data.response.ArticleResponse
46

57
/**
68
* Created by Faisal Amir
@@ -24,4 +26,62 @@ interface ConsumeNewsApiView {
2426
// Switch For Using Chuck Interceptor
2527
fun usingChuckInterceptor(context: Context)
2628

29+
// Get Top Headline From Country
30+
fun getTopHeadlineByCountry(
31+
apiKey: String,
32+
country: String,
33+
callback: NewsResultCallback<ArticleResponse>
34+
)
35+
36+
// Get Top Headline From Country and Category
37+
fun getTopHeadlineByCountry(
38+
apiKey: String,
39+
country: String,
40+
category: String,
41+
callback: NewsResultCallback<ArticleResponse>
42+
)
43+
44+
// Get Top Headline From Source
45+
fun getTopHeadlineBySource(
46+
apiKey: String,
47+
sources: String,
48+
callback: NewsResultCallback<ArticleResponse>
49+
)
50+
51+
// Get Top Headline From Source and Category
52+
fun getTopHeadlineBySource(
53+
apiKey: String,
54+
sources: String,
55+
category: String,
56+
callback: NewsResultCallback<ArticleResponse>
57+
)
58+
59+
// Get Top Headline From q
60+
fun getTopHeadlineByQ(apiKey: String, q: String, callback: NewsResultCallback<ArticleResponse>)
61+
62+
// Get Top Headline From q
63+
fun getTopHeadlineByQ(
64+
apiKey: String,
65+
q: String,
66+
category: String,
67+
callback: NewsResultCallback<ArticleResponse>
68+
)
69+
70+
// Get Top Headline From Category
71+
fun getTopHeadlineByCategory(
72+
apiKey: String,
73+
category: String,
74+
callback: NewsResultCallback<ArticleResponse>
75+
)
76+
77+
// Get Top Headline
78+
fun getTopHeadline(
79+
apiKey: String,
80+
q: String?,
81+
sources: String?,
82+
category: String?,
83+
country: String?,
84+
callback: NewsResultCallback<ArticleResponse>
85+
)
86+
2787
}

frogonewsapi/src/main/java/com/frogobox/frogonewsapi/data/source/NewsApiService.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,6 @@ interface NewsApiService {
8383
@GET(NewsUrl.NEWS_URL_TOP_HEADLINE)
8484
fun getTopHeadlineByCategory(
8585
@Query(NewsConstant.QUERY_API_KEY) apiKey: String,
86-
@Query(NewsConstant.QUERY_Q) q: String,
8786
@Query(NewsConstant.QUERY_CATEGORY) category: String
8887
): Observable<ArticleResponse>
8988

frogonewsapi/src/main/java/com/frogobox/frogonewsapi/data/source/NewsDataSource.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,6 @@ interface NewsDataSource {
7070
// Get Top Headline From Category
7171
fun getTopHeadlineByCategory(
7272
apiKey: String,
73-
q: String,
7473
category: String,
7574
callback: GetRemoteCallback<ArticleResponse>
7675
)

0 commit comments

Comments
 (0)