initial commit
This commit is contained in:
parent
85ef73b2ba
commit
90a9426b7d
221 changed files with 7611 additions and 0 deletions
1
model/.gitignore
vendored
Normal file
1
model/.gitignore
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
/build
|
||||
19
model/build.gradle
Normal file
19
model/build.gradle
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
plugins {
|
||||
id 'java-library'
|
||||
id 'kotlin'
|
||||
}
|
||||
|
||||
java {
|
||||
sourceCompatibility = JavaVersion.VERSION_1_8
|
||||
targetCompatibility = JavaVersion.VERSION_1_8
|
||||
}
|
||||
|
||||
compileKotlin {
|
||||
kotlinOptions {
|
||||
freeCompilerArgs = ["-Xinline-classes"]
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
|
||||
}
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
package org.fnives.test.showcase.model.auth
|
||||
|
||||
data class LoginCredentials(val username: String, val password: String)
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
package org.fnives.test.showcase.model.auth
|
||||
|
||||
enum class LoginStatus {
|
||||
SUCCESS, INVALID_CREDENTIALS, INVALID_USERNAME, INVALID_PASSWORD
|
||||
}
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
package org.fnives.test.showcase.model.content
|
||||
|
||||
data class Content(val id: ContentId, val title: String, val description: String, val imageUrl: ImageUrl)
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
package org.fnives.test.showcase.model.content
|
||||
|
||||
inline class ContentId(val id: String)
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
package org.fnives.test.showcase.model.content
|
||||
|
||||
data class FavouriteContent(val content: Content, val isFavourite: Boolean)
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
package org.fnives.test.showcase.model.content
|
||||
|
||||
inline class ImageUrl(val url: String)
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
package org.fnives.test.showcase.model.network
|
||||
|
||||
inline class BaseUrl(val baseUrl: String)
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
package org.fnives.test.showcase.model.session
|
||||
|
||||
data class Session(val accessToken: String, val refreshToken: String)
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
package org.fnives.test.showcase.model.shared
|
||||
|
||||
sealed class Answer<T> {
|
||||
data class Success<T>(val data: T) : Answer<T>()
|
||||
data class Error<T>(val error: Throwable) : Answer<T>()
|
||||
}
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
package org.fnives.test.showcase.model.shared
|
||||
|
||||
sealed class Resource<T> {
|
||||
data class Success<T>(val data: T) : Resource<T>()
|
||||
data class Error<T>(val error: Throwable) : Resource<T>()
|
||||
class Loading<T> : Resource<T>() {
|
||||
override fun equals(other: Any?): Boolean =
|
||||
javaClass == other?.javaClass
|
||||
|
||||
override fun hashCode(): Int = Loading::class.java.hashCode()
|
||||
|
||||
override fun toString(): String = "Resource.Loading()"
|
||||
}
|
||||
|
||||
abstract override fun equals(other: Any?): Boolean
|
||||
|
||||
abstract override fun hashCode(): Int
|
||||
|
||||
abstract override fun toString(): String
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue