Skip to content

Instantly share code, notes, and snippets.

View arulwastaken's full-sized avatar
🎯
Focusing

Arul arulwastaken

🎯
Focusing
  • Tamilnadu
View GitHub Profile
@arulwastaken
arulwastaken / ApiResponse.kt
Last active July 7, 2025 05:35
ApiResponse.kt
package com.codingwitharul.bookmyslot.data.networking.models
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
sealed class ApiResponse<out T, out E> {
/**
* Represents successful network responses (2xx).
*/
package com.codingwitharul.bookmyslot.data.networking
internal object Constants {
const val HOST = "https://642d737e66a20ec9ce9de798.mockapi.io/api/v1/"
}
internal object EndPoints {
const val Auth = "auth"
}
package com.codingwitharul.bookmyslot.data.networking
import com.codingwitharul.bookmyslot.common.httpClient
import com.codingwitharul.bookmyslot.data.db.DatabaseHelper
import com.codingwitharul.bookmyslot.db.UserInfo
import com.codingwitharul.bookmyslot.data.networking.models.ApiResponse
import io.github.aakira.napier.Napier
import io.ktor.client.HttpClient
import io.ktor.client.call.body
import io.ktor.client.plugins.ClientRequestException
@arulwastaken
arulwastaken / HttpClient.kt
Last active July 7, 2025 06:10
common/HttpClient.kt
package com.codingwitharul.bookmyslot.common
import io.ktor.client.HttpClient
import io.ktor.client.HttpClientConfig
expect fun httpClient(config: HttpClientConfig<*>.() -> Unit = {}): HttpClient
@arulwastaken
arulwastaken / HttpClient.android.kt
Created July 7, 2025 06:12
androidMain/common/HttpClient.android.kt
package com.codingwitharul.bookmyslot.common
import io.ktor.client.HttpClient
import io.ktor.client.HttpClientConfig
import io.ktor.client.engine.okhttp.OkHttp
import io.ktor.client.plugins.HttpTimeout
import io.ktor.client.plugins.contentnegotiation.ContentNegotiation
import io.ktor.client.plugins.defaultRequest
import io.ktor.client.request.header
import io.ktor.serialization.kotlinx.json.json
@arulwastaken
arulwastaken / HttpClient.ios.kt
Created July 7, 2025 06:14
iosMain/Common/HttpClient.ios.kt
package com.codingwitharul.bookmyslot.common
import io.ktor.client.HttpClient
import io.ktor.client.HttpClientConfig
import io.ktor.client.engine.darwin.Darwin
import io.ktor.client.plugins.HttpTimeout
import io.ktor.client.plugins.contentnegotiation.ContentNegotiation
import io.ktor.client.plugins.defaultRequest
import io.ktor.client.request.header
import io.ktor.serialization.kotlinx.json.json
package com.codingwitharul.bookmyslot.data.repo
import com.codingwitharul.bookmyslot.data.db.DatabaseHelper
import com.codingwitharul.bookmyslot.data.networking.ApiClientHelper
import com.codingwitharul.bookmyslot.data.networking.EndPoints
import com.codingwitharul.bookmyslot.data.networking.apiEndPoint
import com.codingwitharul.bookmyslot.data.networking.models.ApiResponse
import com.codingwitharul.bookmyslot.data.networking.models.ErrorType
import com.codingwitharul.bookmyslot.data.networking.models.getErrorData
import com.codingwitharul.bookmyslot.data.networking.safeRequest
@arulwastaken
arulwastaken / Camera.kt
Last active July 18, 2025 06:17
/commonMain/common/Camera.kt
sealed class CameraEvent {
object Init : CameraEvent()
object CaptureImage : CameraEvent()
object SwitchCamera : CameraEvent()
}
abstract class CameraCallback {
private val _event = Channel<CameraEvent>()
val eventFlow: Flow<CameraEvent> get() = _event.receiveAsFlow()
suspend fun sendEvent(event: CameraEvent) {
@arulwastaken
arulwastaken / Camera.android.kt
Created July 18, 2025 09:41
/androidMain/CameraView.android.kt
package com.codingwitharul.bookmyslot.common
import android.content.Context
import android.net.Uri
import android.util.Log
import androidx.camera.core.CameraSelector
import androidx.camera.core.ImageCapture
import androidx.camera.core.ImageCapture.OutputFileOptions.Builder
import androidx.camera.core.ImageCaptureException
import androidx.camera.core.Preview