Skip to content

Instantly share code, notes, and snippets.

View bolaware's full-sized avatar
👨‍🔧

Bolaji Kassim bolaware

👨‍🔧
View GitHub Profile
@bolaware
bolaware / rave_failed_response.js
Last active February 8, 2019 11:38
This is a typical json response for a successful and failed transaction that will be passed back to your activity.
{
"status": "Transaction successfully fetched",
"message": "Tx Fetched",
"data": {
"id": 27272462,
"txRef": "ref",
"orderRef": "URF_1549621287102_6793935",
"flwRef": "FLW117494557",
"redirectUrl": "https:\/\/rave-webhook.herokuapp.com\/receivepayment",
"device_fingerprint": "358240051111110",
{
"status": "Transaction successfully fetched",
"message": "Tx Fetched",
"data": {
"id": 427398,
"txRef": "my-ref",
"orderRef": "URF_1549613005326_2869035",
"flwRef": "FLW-MOCK-481dc616a228f87e5b0a5e7166db26bd",
"redirectUrl": "https:\/\/rave-webhook.herokuapp.com\/receivepayment",
"device_fingerprint": "358240051111110",
data class Result<out T>(val status: Status, val data: T?, val message: String?, val code : Int = 0) {
companion object {
fun <T> success(data: T?): Resource<T> {
return Result(Status.SUCCESS, data, null)
}
fun <T> error(msg: String, data: T?): Resource<T> {
return Result(Status.ERROR, data, msg)
}
fun <T : Any> makeCall(call: suspend () -> Response<T>): LiveData<Result<T>> {
val result = MutableLiveData<Result<T>>()
GlobalScope.launch(Dispatchers.Main) {
try {
val response = withContext(Dispatchers.IO) { call.invoke() }
if (response.isSuccessful) {
result.postValue(Result(Status.SUCCESS, response.body(), response.message()))
} else {
result.postValue(Result(Status.ERROR, response.body(), response.errorBody()?.string(), response.code()))
}
fun <T : Any> makeCall(call: suspend () -> Response<T>): LiveData<Result<T>> {
val result = MutableLiveData<Result<T>>()
GlobalScope.launch(Dispatchers.Main) {
try {
val response = withContext(Dispatchers.IO) { call.invoke() }
if (response.isSuccessful) {
result.postValue(Result(Status.SUCCESS, response.body(), response.message()))
} else {
result.postValue(Result(Status.ERROR, response.body(), response.errorBody()?.string(), response.code()))
}
fun login(body: LoginBody): LiveData<Result<LoginResponse>> {
return makeCall(call = {
service.login(body)
})
}
fun signup(body: SignBody): LiveData<Result<SignUpResponse>> {
return makeCall(call = {
service.signUp(body)
})
@bolaware
bolaware / build.gradle
Last active June 17, 2019 22:42
implement retrofit
//retrofit
implementation 'com.squareup.retrofit2:retrofit:2.6.0'
//kotlin-coroutine
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.0-M1'
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.0-M1'
@bolaware
bolaware / new_jumio_dependecies.gradle
Created June 19, 2019 08:32
New Jumio dependencies
implementation "com.jumio.android:core:3.2.1@aar"
implementation "com.jumio.android:nv:3.2.1@aar"
implementation "com.jumio.android:javadoc:3.2.1"
implementation "com.google.android.gms:play-services-vision:17.0.2"
implementation "com.jumio.android:nv-mrz:3.2.1@aar"
implementation "com.jumio.android:nv-nfc:3.2.1@aar"
implementation "org.bouncycastle:bcprov-jdk15on:1.61"
implementation "net.sf.scuba:scuba-sc-android:0.0.18"
implementation "androidx.room:room-runtime:2.0.0"
implementation "com.jumio.android:face:3.2.1@aar"
@bolaware
bolaware / old_jumio_dependecies.gradle
Created June 19, 2019 08:32
Old Jumio dependencies
implementation "com.jumio.android:core:2.13.0@aar"
implementation "com.jumio.android:nv:2.13.0@aar"
implementation "com.jumio.android:nv-liveness:2.13.0@aar"
implementation "com.jumio.android:javadoc:2.13.0"
implementation "com.google.android.gms:play-services-vision:17.0.2"
implementation "com.jumio.android:nv-mrz:2.13.0@aar"
implementation "com.jumio.android:nv-nfc:2.13.0@aar"
implementation "com.madgag.spongycastle:prov:1.58.0.0"
implementation "net.sf.scuba:scuba-sc-android:0.0.16"
data class Result<out T>(val status: Status, val data: T?, val message: String?, val code : Int = 0) {
companion object {
fun <T> success(data: T?): Result<T> {
return Result(Status.SUCCESS, data, null)
}
fun <T> error(msg: String, data: T?): Result<T> {
return Result(Status.ERROR, data, msg)
}