Skip to content

Commit 3b24add

Browse files
view binding and viewmodels are done
Signed-off-by: Arnav Gupta <[email protected]>
1 parent 2e39743 commit 3b24add

File tree

22 files changed

+281
-18
lines changed

22 files changed

+281
-18
lines changed

api/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ java {
1212
dependencies {
1313
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
1414
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.4.2"
15-
implementation "com.squareup.retrofit2:retrofit:$retrofit_version"
15+
api "com.squareup.retrofit2:retrofit:$retrofit_version"
1616
implementation "com.squareup.retrofit2:converter-moshi:$retrofit_version"
1717
implementation "com.squareup.moshi:moshi:$moshi_version"
1818
kapt "com.squareup.moshi:moshi-kotlin-codegen:$moshi_version"
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package io.realworld.api.models.entities
2+
3+
4+
import com.squareup.moshi.Json
5+
import com.squareup.moshi.JsonClass
6+
7+
@JsonClass(generateAdapter = true)
8+
data class ArticleData(
9+
@Json(name = "body")
10+
val body: String,
11+
@Json(name = "description")
12+
val description: String,
13+
@Json(name = "tagList")
14+
val tagList: List<String>,
15+
@Json(name = "title")
16+
val title: String
17+
)
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package io.realworld.api.models.entities
2+
3+
4+
import com.squareup.moshi.Json
5+
import com.squareup.moshi.JsonClass
6+
7+
@JsonClass(generateAdapter = true)
8+
data class LoginData(
9+
@Json(name = "email")
10+
val email: String,
11+
@Json(name = "password")
12+
val password: String,
13+
)

api/src/main/java/io/realworld/api/models/entities/UserCreds.kt renamed to api/src/main/java/io/realworld/api/models/entities/SignupData.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import com.squareup.moshi.Json
55
import com.squareup.moshi.JsonClass
66

77
@JsonClass(generateAdapter = true)
8-
data class UserCreds(
8+
data class SignupData(
99
@Json(name = "email")
1010
val email: String,
1111
@Json(name = "password")
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package io.realworld.api.models.entities
2+
3+
4+
import com.squareup.moshi.Json
5+
import com.squareup.moshi.JsonClass
6+
7+
@JsonClass(generateAdapter = true)
8+
data class UserUpdateData(
9+
@Json(name = "bio")
10+
val bio: String?,
11+
@Json(name = "email")
12+
val email: String?,
13+
@Json(name = "image")
14+
val image: String?,
15+
@Json(name = "username")
16+
val username: String?,
17+
@Json(name = "password")
18+
val password: String?
19+
)
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package io.realworld.api.models.requests
2+
3+
4+
import com.squareup.moshi.Json
5+
import com.squareup.moshi.JsonClass
6+
import io.realworld.api.models.entities.ArticleData
7+
8+
@JsonClass(generateAdapter = true)
9+
data class CreateArticleRequest(
10+
@Json(name = "article")
11+
val article: ArticleData
12+
)
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package io.realworld.api.models.requests
2+
3+
4+
import com.squareup.moshi.Json
5+
import com.squareup.moshi.JsonClass
6+
import io.realworld.api.models.entities.LoginData
7+
import io.realworld.api.models.entities.SignupData
8+
9+
@JsonClass(generateAdapter = true)
10+
data class LoginRequest(
11+
@Json(name = "user")
12+
val user: LoginData
13+
)

api/src/main/java/io/realworld/api/models/requests/SignupRequest.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@ package io.realworld.api.models.requests
33

44
import com.squareup.moshi.Json
55
import com.squareup.moshi.JsonClass
6-
import io.realworld.api.models.entities.UserCreds
6+
import io.realworld.api.models.entities.SignupData
77

88
@JsonClass(generateAdapter = true)
99
data class SignupRequest(
1010
@Json(name = "user")
11-
val user: UserCreds
11+
val user: SignupData
1212
)
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package io.realworld.api.models.requests
2+
3+
import com.squareup.moshi.Json
4+
import com.squareup.moshi.JsonClass
5+
import io.realworld.api.models.entities.SignupData
6+
7+
@JsonClass(generateAdapter = true)
8+
data class UserUpdateRequest(
9+
@Json(name = "user")
10+
val user: SignupData
11+
)
Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
11
package io.realworld.api.services
22

3-
import io.realworld.api.models.entities.UserCreds
3+
import io.realworld.api.models.requests.LoginRequest
44
import io.realworld.api.models.requests.SignupRequest
5+
import io.realworld.api.models.responses.ArticleResponse
56
import io.realworld.api.models.responses.ArticlesResponse
7+
import io.realworld.api.models.responses.TagsResponse
68
import io.realworld.api.models.responses.UserResponse
79
import retrofit2.Response
8-
import retrofit2.http.Body
9-
import retrofit2.http.GET
10-
import retrofit2.http.POST
11-
import retrofit2.http.Query
10+
import retrofit2.http.*
1211

1312
interface ConduitAPI {
1413

@@ -17,11 +16,24 @@ interface ConduitAPI {
1716
@Body userCreds: SignupRequest
1817
): Response<UserResponse>
1918

19+
@POST("users")
20+
suspend fun loginUser(
21+
@Body userCreds: LoginRequest
22+
): Response<UserResponse>
23+
2024
@GET("articles")
2125
suspend fun getArticles(
2226
@Query("author") author: String? = null,
2327
@Query("favourited") favourited: String? = null,
2428
@Query("tag") tag: String? = null
2529
): Response<ArticlesResponse>
2630

31+
@GET("articles/{slug}")
32+
suspend fun getArticleBySlug(
33+
@Path("slug") slug: String
34+
): Response<ArticleResponse>
35+
36+
@GET("tags")
37+
suspend fun getTags(): Response<TagsResponse>
38+
2739
}

0 commit comments

Comments
 (0)