initial commit

This commit is contained in:
Gergely Hegedus 2021-04-07 21:12:10 +03:00
parent 85ef73b2ba
commit 90a9426b7d
221 changed files with 7611 additions and 0 deletions

1
model/.gitignore vendored Normal file
View file

@ -0,0 +1 @@
/build

19
model/build.gradle Normal file
View 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"
}

View file

@ -0,0 +1,3 @@
package org.fnives.test.showcase.model.auth
data class LoginCredentials(val username: String, val password: String)

View file

@ -0,0 +1,5 @@
package org.fnives.test.showcase.model.auth
enum class LoginStatus {
SUCCESS, INVALID_CREDENTIALS, INVALID_USERNAME, INVALID_PASSWORD
}

View file

@ -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)

View file

@ -0,0 +1,3 @@
package org.fnives.test.showcase.model.content
inline class ContentId(val id: String)

View file

@ -0,0 +1,3 @@
package org.fnives.test.showcase.model.content
data class FavouriteContent(val content: Content, val isFavourite: Boolean)

View file

@ -0,0 +1,3 @@
package org.fnives.test.showcase.model.content
inline class ImageUrl(val url: String)

View file

@ -0,0 +1,3 @@
package org.fnives.test.showcase.model.network
inline class BaseUrl(val baseUrl: String)

View file

@ -0,0 +1,3 @@
package org.fnives.test.showcase.model.session
data class Session(val accessToken: String, val refreshToken: String)

View file

@ -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>()
}

View file

@ -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
}