Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions app/src/main/java/com/delecrode/devhub/MainActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.activity.enableEdgeToEdge
import com.delecrode.devhub.domain.session.SessionViewModel
import com.delecrode.devhub.navigation.AppNavHost
import com.delecrode.devhub.ui.theme.DevHubTheme
import com.delecrode.devhub.presentation.navigation.AppNavHost
import com.delecrode.devhub.presentation.ui.theme.DevHubTheme
import org.koin.androidx.compose.koinViewModel

class MainActivity : ComponentActivity() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import com.delecrode.devhub.data.model.entity.RepoEntity

@Database(
entities = [RepoEntity::class],
version = 1
version = 2
)
abstract class AppDatabase : RoomDatabase() {
abstract fun repoDao(): RepoDao
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
package com.delecrode.devhub.data.local.database

import androidx.room.migration.Migration
import androidx.sqlite.db.SupportSQLiteDatabase

val MIGRATION_1_2 = object : Migration(1, 2) {
override fun migrate(db: SupportSQLiteDatabase) {

db.execSQL("""
CREATE TABLE repositories_new (
idLocal INTEGER NOT NULL PRIMARY KEY,
id INTEGER NOT NULL,
name TEXT NOT NULL,
userName TEXT NOT NULL,
description TEXT,
url TEXT NOT NULL
)
""")

db.execSQL("""
INSERT INTO repositories_new (
idLocal, id, name, userName, description, url
)
SELECT
idLocal, id, name, userName, description, url
FROM repositories
""")

db.execSQL("DROP TABLE repositories")
db.execSQL("ALTER TABLE repositories_new RENAME TO repositories")
}
}

Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,6 @@ data class RepoEntity(
val id: Int,
val name: String,
val userName: String,
val description: String,
val description: String?,
val url: String,
)
Original file line number Diff line number Diff line change
@@ -1,26 +1,21 @@
package com.delecrode.devhub.data.remote.webApi.instance

import com.delecrode.devhub.BuildConfig
import com.delecrode.devhub.data.remote.webApi.instance.intercptor.FullLoggingInterceptor
import com.delecrode.devhub.data.remote.webApi.service.RepoApiService
import com.delecrode.devhub.data.remote.webApi.service.UserApiService
import okhttp3.OkHttpClient
import okhttp3.logging.HttpLoggingInterceptor
import retrofit2.Retrofit
import retrofit2.converter.gson.GsonConverterFactory
import java.util.concurrent.TimeUnit

object RetrofitInstance {

private val loggingInterceptor = HttpLoggingInterceptor().apply {
level =
if (BuildConfig.DEBUG) HttpLoggingInterceptor.Level.BODY else HttpLoggingInterceptor.Level.NONE
}

private val client = OkHttpClient.Builder()
.connectTimeout(30, TimeUnit.SECONDS)
.readTimeout(30, TimeUnit.SECONDS)
.writeTimeout(30, TimeUnit.SECONDS)
.addInterceptor(loggingInterceptor)
.addInterceptor(FullLoggingInterceptor())
.build()

val retrofit: Retrofit = Retrofit.Builder()
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
package com.delecrode.devhub.data.remote.webApi.instance.intercptor

import android.util.Log
import okhttp3.Interceptor
import okhttp3.Response
import okio.Buffer

class FullLoggingInterceptor : Interceptor {

override fun intercept(chain: Interceptor.Chain): Response {
val request = chain.request()

// ===== REQUEST =====
Log.d("Interceptor Method + URL", "${request.method}: ${request.url.toString()}")
Log.d("Interceptor Header", request.headers.toString())

request.body?.let { body ->
val buffer = Buffer()
body.writeTo(buffer)
Log.d("Interceptor Buffer", buffer.readUtf8())
}

val startTime = System.nanoTime()
val response = chain.proceed(request)
val endTime = System.nanoTime()

// ===== RESPONSE =====
Log.d("Interceptor Code", response.code.toString())
Log.d("Interceptor Message", response.message)
Log.d("Interceptor Header", response.headers.toString())

val responseBody = response.body
val source = responseBody?.source()
source?.request(Long.MAX_VALUE)

val buffer = source?.buffer
val responseString = buffer?.clone()?.readUtf8()

Log.d("Interceptor Response", responseString ?: "")

Log.d(
"Interceptor Time",
"Took ${(endTime - startTime) / 1e6} ms"
)

return response
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ import com.delecrode.devhub.data.remote.firebase.UserExtraData
import com.delecrode.devhub.domain.model.RegisterUser
import com.delecrode.devhub.domain.model.UserAuth
import com.delecrode.devhub.domain.repository.AuthRepository
import com.delecrode.devhub.utils.Result
import com.delecrode.devhub.utils.mapAuthError
import com.delecrode.devhub.utils.mapSignUpError
import com.delecrode.devhub.data.utils.Result
import com.delecrode.devhub.data.utils.mapAuthError
import com.delecrode.devhub.data.utils.mapSignUpError

class AuthRepositoryImpl(
private val authDataSource: FirebaseAuth,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ import com.delecrode.devhub.domain.model.Languages
import com.delecrode.devhub.domain.model.RepoDetail
import com.delecrode.devhub.domain.model.RepoFav
import com.delecrode.devhub.domain.repository.RepoRepository
import com.delecrode.devhub.utils.Result
import com.delecrode.devhub.utils.mapHttpError
import com.delecrode.devhub.data.utils.Result
import com.delecrode.devhub.data.utils.mapHttpError
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.map
import java.io.IOException
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ import com.delecrode.devhub.domain.model.Repos
import com.delecrode.devhub.domain.model.UserForFirebase
import com.delecrode.devhub.domain.model.UserForGit
import com.delecrode.devhub.domain.repository.UserRepository
import com.delecrode.devhub.utils.Result
import com.delecrode.devhub.utils.mapHttpError
import com.delecrode.devhub.data.utils.Result
import com.delecrode.devhub.data.utils.mapHttpError
import kotlinx.coroutines.flow.first
import java.io.IOException

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.delecrode.devhub.utils
package com.delecrode.devhub.data.utils

import com.google.firebase.auth.FirebaseAuthInvalidCredentialsException
import com.google.firebase.auth.FirebaseAuthInvalidUserException
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.delecrode.devhub.utils
package com.delecrode.devhub.data.utils

sealed class Result<out T> {
data class Success<T>(val data: T) : Result<T>()
Expand Down
20 changes: 12 additions & 8 deletions app/src/main/java/com/delecrode/devhub/di/AppModule.kt
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import androidx.room.Room
import com.delecrode.devhub.data.local.dataStore.AuthLocalDataSource
import com.delecrode.devhub.data.local.dataStore.AuthLocalDataSourceImpl
import com.delecrode.devhub.data.local.database.AppDatabase
import com.delecrode.devhub.data.local.database.MIGRATION_1_2
import com.delecrode.devhub.data.local.database.data.RepoLocalDataSource
import com.delecrode.devhub.data.local.database.data.RepoLocalDataSourceImpl
import com.delecrode.devhub.data.remote.firebase.UserExtraData
Expand All @@ -15,13 +16,13 @@ import com.delecrode.devhub.domain.repository.AuthRepository
import com.delecrode.devhub.domain.repository.RepoRepository
import com.delecrode.devhub.domain.repository.UserRepository
import com.delecrode.devhub.domain.session.SessionViewModel
import com.delecrode.devhub.ui.favoritos.RepoFavViewModel
import com.delecrode.devhub.ui.forgot.ForgotPasswordViewModel
import com.delecrode.devhub.ui.home.HomeViewModel
import com.delecrode.devhub.ui.login.AuthViewModel
import com.delecrode.devhub.ui.profile.ProfileViewModel
import com.delecrode.devhub.ui.register.RegisterViewModel
import com.delecrode.devhub.ui.repo.RepoDetailViewModel
import com.delecrode.devhub.presentation.ui.favoritos.RepoFavViewModel
import com.delecrode.devhub.presentation.ui.forgot.ForgotPasswordViewModel
import com.delecrode.devhub.presentation.ui.home.HomeViewModel
import com.delecrode.devhub.presentation.ui.login.AuthViewModel
import com.delecrode.devhub.presentation.ui.profile.ProfileViewModel
import com.delecrode.devhub.presentation.ui.register.RegisterViewModel
import com.delecrode.devhub.presentation.ui.repo.RepoDetailViewModel
import com.google.firebase.auth.FirebaseAuth
import com.google.firebase.firestore.FirebaseFirestore
import org.koin.android.ext.koin.androidContext
Expand All @@ -42,7 +43,10 @@ val appModule = module {
androidContext(),
AppDatabase::class.java,
"app_database"
).build()
)
.addMigrations(MIGRATION_1_2)
.build()

}

single {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,6 @@ data class RepoFav(
val id: Int,
val name: String,
val userName: String,
val description: String,
val description: String?,
val url: String,
)
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.delecrode.devhub.domain.repository

import com.delecrode.devhub.domain.model.UserAuth
import com.delecrode.devhub.utils.Result
import com.delecrode.devhub.data.utils.Result

interface AuthRepository {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package com.delecrode.devhub.domain.repository
import com.delecrode.devhub.domain.model.Languages
import com.delecrode.devhub.domain.model.RepoDetail
import com.delecrode.devhub.domain.model.RepoFav
import com.delecrode.devhub.utils.Result
import com.delecrode.devhub.data.utils.Result
import kotlinx.coroutines.flow.Flow

interface RepoRepository {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package com.delecrode.devhub.domain.repository
import com.delecrode.devhub.domain.model.Repos
import com.delecrode.devhub.domain.model.UserForFirebase
import com.delecrode.devhub.domain.model.UserForGit
import com.delecrode.devhub.utils.Result
import com.delecrode.devhub.data.utils.Result

interface UserRepository {
suspend fun getUserForGitHub(userName: String): Result<UserForGit>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.delecrode.devhub.ui.components
package com.delecrode.devhub.presentation.components

import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
Expand All @@ -13,8 +13,8 @@ import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import com.delecrode.devhub.ui.theme.DevHubTheme
import com.delecrode.devhub.ui.theme.PrimaryBlue
import com.delecrode.devhub.presentation.ui.theme.DevHubTheme
import com.delecrode.devhub.presentation.ui.theme.PrimaryBlue


@Composable
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.delecrode.devhub.ui.components
package com.delecrode.devhub.presentation.components

import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Column
Expand Down Expand Up @@ -33,8 +33,9 @@ import androidx.compose.ui.text.input.VisualTransformation
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import com.delecrode.devhub.R
import com.delecrode.devhub.ui.theme.DevHubTheme
import com.delecrode.devhub.ui.theme.PrimaryBlue
import com.delecrode.devhub.presentation.ui.theme.DevHubTheme
import com.delecrode.devhub.presentation.ui.theme.PrimaryBlue


@Composable
fun EmailTextField(
Expand Down
Loading