Skip to content

Commit

Permalink
refactor: Refactoring user classes
Browse files Browse the repository at this point in the history
  • Loading branch information
SamilaRuane committed Mar 15, 2018
1 parent 0dc9868 commit ad70e78
Show file tree
Hide file tree
Showing 112 changed files with 2,295 additions and 499 deletions.
16 changes: 16 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# built application files
*.apk
*.ap_

# files for the dex VM
*.dex

# Java class files
*.class

# generated files
bin/
gen/

# Local configuration file (sdk path, etc)
local.properties
Binary file modified .gradle/4.1/fileHashes/fileHashes.bin
Binary file not shown.
Binary file modified .gradle/4.1/fileHashes/fileHashes.lock
Binary file not shown.
Binary file modified .gradle/4.1/fileHashes/resourceHashesCache.bin
Binary file not shown.
Binary file modified .gradle/4.1/javaCompile/classAnalysis.bin
Binary file not shown.
Binary file modified .gradle/4.1/javaCompile/javaCompile.lock
Binary file not shown.
Binary file modified .gradle/4.1/javaCompile/taskHistory.bin
Binary file not shown.
Binary file modified .gradle/4.1/taskHistory/fileSnapshots.bin
Binary file not shown.
Binary file modified .gradle/4.1/taskHistory/taskHistory.bin
Binary file not shown.
Binary file modified .gradle/4.1/taskHistory/taskHistory.lock
Binary file not shown.
11 changes: 0 additions & 11 deletions .idea/libraries/mockito_core_2_13_0.xml

This file was deleted.

11 changes: 11 additions & 0 deletions .idea/libraries/mockito_core_2_15_0.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

792 changes: 531 additions & 261 deletions .idea/workspace.xml

Large diffs are not rendered by default.

3 changes: 2 additions & 1 deletion app/app.iml
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,7 @@
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/split-apk" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/splits-support" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/symbols" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/tmp" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/transforms" />
<excludeFolder url="file://$MODULE_DIR$/build/kotlin" />
<excludeFolder url="file://$MODULE_DIR$/build/outputs" />
Expand All @@ -122,9 +123,9 @@
<orderEntry type="library" scope="TEST" name="espresso-core-3.0.1" level="project" />
<orderEntry type="library" scope="TEST" name="espresso-idling-resource-3.0.1" level="project" />
<orderEntry type="library" scope="TEST" name="objenesis-2.6" level="project" />
<orderEntry type="library" scope="TEST" name="mockito-core-2.13.0" level="project" />
<orderEntry type="library" name="transition-26.1.0" level="project" />
<orderEntry type="library" scope="TEST" name="jsr305-2.0.1" level="project" />
<orderEntry type="library" scope="TEST" name="mockito-core-2.15.0" level="project" />
<orderEntry type="library" scope="TEST" name="runner-1.0.1" level="project" />
<orderEntry type="library" name="support-compat-26.1.0" level="project" />
<orderEntry type="library" name="constraint-layout-solver-1.0.2" level="project" />
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package br.com.samilaruane.carteiravirtual.domain

import br.com.samilaruane.carteiravirtual.constants.BaseConstants
import br.com.samilaruane.carteiravirtual.utils.constants.BaseConstants

/**
* Created by samila on 18/12/17.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package br.com.samilaruane.carteiravirtual.domain

import br.com.samilaruane.carteiravirtual.constants.BaseConstants
import br.com.samilaruane.carteiravirtual.utils.constants.BaseConstants

/**
* Created by samila on 18/12/17.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package br.com.samilaruane.carteiravirtual.domain

import br.com.samilaruane.carteiravirtual.constants.BaseConstants
import br.com.samilaruane.carteiravirtual.utils.constants.BaseConstants

/**
* Created by samila on 18/12/17.
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package br.com.samilaruane.carteiravirtual.domain

import br.com.samilaruane.carteiravirtual.domain.entities.User
import br.com.samilaruane.carteiravirtual.repository.SharedPreferencesHelper

/**
* Created by samila on 14/03/18.
*/
class CredencialsManager {

companion object {

fun authenticateUser(user: User, password: String): Boolean {
if (user.password.equals(password)) {
return true
}
return false
}
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package br.com.samilaruane.carteiravirtual.domain

import br.com.samilaruane.carteiravirtual.domain.entities.Account

/**
* Created by samila on 21/12/17.
*/
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
package br.com.samilaruane.carteiravirtual.domain

import android.content.Context
import br.com.samilaruane.carteiravirtual.constants.BaseConstants
import br.com.samilaruane.carteiravirtual.domain.entities.Account
import br.com.samilaruane.carteiravirtual.domain.entities.User
import br.com.samilaruane.carteiravirtual.utils.constants.BaseConstants
import br.com.samilaruane.carteiravirtual.repository.db.TransactionRepository
import br.com.samilaruane.carteiravirtual.repository.db.TransactionRepositoryImpl
import java.util.*
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,60 +1,59 @@
package br.com.samilaruane.carteiravirtual.domain

import android.content.Context
import br.com.samilaruane.carteiravirtual.constants.BaseConstants
import br.com.samilaruane.carteiravirtual.R
import br.com.samilaruane.carteiravirtual.domain.entities.Account
import br.com.samilaruane.carteiravirtual.domain.entities.User
import br.com.samilaruane.carteiravirtual.utils.constants.BaseConstants
import br.com.samilaruane.carteiravirtual.repository.SharedPreferencesHelper
import br.com.samilaruane.carteiravirtual.repository.db.AccountRepository
import br.com.samilaruane.carteiravirtual.repository.db.AccountRepositoryImpl
import br.com.samilaruane.carteiravirtual.repository.db.SearchFilter
import br.com.samilaruane.carteiravirtual.repository.db.UserRepository
import br.com.samilaruane.carteiravirtual.repository.db.UserRepositoryImpl
import br.com.samilaruane.carteiravirtual.utils.OnEventResponse
import br.com.samilaruane.carteiravirtual.utils.constants.DatabaseConstants

/**
* Created by samila on 02/01/18.
*/
class UserBusiness(ctx : Context) {

private var userRepository : UserRepository
private var accountRepository : AccountRepository
private val userRepository : UserRepository
private val accountRepository : AccountRepository
lateinit var brlAccount : Account
lateinit var britaAccount : Account
lateinit var bitCoinAccount : Account
private val context : Context

init {
userRepository = UserRepositoryImpl.getInstance(ctx)
userRepository = UserRepository.getInstance(ctx)
accountRepository = AccountRepositoryImpl.getInstance(ctx)
context = ctx
}

fun createUser (name : String, email : String, phone : String, password : String, passwordConfirmation : String){
fun createUser (name : String, email : String, phone : String, password : String, passwordConfirmation : String, listener : OnEventResponse){

if (password.equals(passwordConfirmation)) {
val user = User(0, name, phone, email, password)
val userId = userRepository.insert(user)
val userId = userRepository.create(user)

if (isValid(user)) {
if (user.isValid()) {
if (userId != null) {
accountRepository.insert(Account(userId, BRLCoin (), 100000.00))
accountRepository.insert(Account(userId, BritaCoin (), 0.0))
accountRepository.insert(Account(userId, BTCoin (), 0.0))

accountRepository.insert(Account(userId, BRLCoin(), 100000.00))
accountRepository.insert(Account(userId, BritaCoin(), 0.0))
accountRepository.insert(Account(userId, BTCoin(), 0.0))
}

listener.onSuccess()
}
}
}

private fun isValid (user : User?) : Boolean{
if(user != null){
if((!user.name.isEmpty()) &&
(!user.email.isEmpty()) &&
(!user.password.isEmpty()))
return true
}
return false
listener.onError(context.getString(R.string.create_user_error_alert))
}

fun initAccounts (user : User){
val accounts = accountRepository.select(user.id.toString())
for (acc : Account in accounts){
when(acc.getCoin().getCoinInitials()){

BaseConstants.BRITA_ACCOUNT -> britaAccount = acc
BaseConstants.BITCOIN_ACCOUNT -> bitCoinAccount = acc
BaseConstants.BRL_ACCOUNT -> brlAccount = acc
Expand All @@ -73,24 +72,27 @@ class UserBusiness(ctx : Context) {
return null
}

fun getCurrentUser () : User{
return User (1, "", "", "", "")
fun getCurrentUser () : User {
val id = SharedPreferencesHelper(context).getUserId()
return userRepository.select(SearchFilter.getById(DatabaseConstants.USER.TABLE_NAME, DatabaseConstants.USER.COLUMNS.ID, id.toString())).single()
}

fun login (phone : String, password: String) : Boolean{
userRepository.select("")
var user : User?
if(!phone.equals("") && !password.equals("") && phone != null && password != null) {
user = userRepository.selectUserByPhone(phone)
if(user != null){
if (user.password.equals(password)){
return true
}
}
if(!phone.isNullOrEmpty() && !password.isNullOrEmpty()) {
user = userRepository.select(SearchFilter.getByArgument(DatabaseConstants.USER.TABLE_NAME, DatabaseConstants.USER.COLUMNS.PHONE, phone)).single()
if(CredencialsManager.authenticateUser(user, password)) {
SharedPreferencesHelper(context).saveUserId(user)
return true
}
return false
}

return false
}

fun getUserAccounts () : List <Account>{
return accountRepository.select(SharedPreferencesHelper(context).getUserId().toString())
}

}
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
package br.com.samilaruane.carteiravirtual.domain
package br.com.samilaruane.carteiravirtual.domain.entities

import android.util.Log
import br.com.samilaruane.carteiravirtual.domain.Coin
import br.com.samilaruane.carteiravirtual.domain.exceptions.InsufficientBalanceException
import java.io.Serializable

/**
* Created by samila on 18/12/17.
*/
class Account(private val userId : Long, private val coin : Coin, private var accountBalance : Double = 0.0) {
class Account(private val userId : Long, private val coin : Coin, private var accountBalance : Double = 0.0) : Serializable {

private var id : Long = 0

Expand All @@ -32,7 +33,7 @@ class Account(private val userId : Long, private val coin : Coin, private var ac
return this.accountBalance
}

fun getCoin() : Coin{
fun getCoin() : Coin {
return this.coin
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package br.com.samilaruane.carteiravirtual.entities
package br.com.samilaruane.carteiravirtual.domain.entities

/**
* Created by samila on 23/12/17.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package br.com.samilaruane.carteiravirtual.entities
package br.com.samilaruane.carteiravirtual.domain.entities

/**
* Created by samila on 23/12/17.
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package br.com.samilaruane.carteiravirtual.domain.entities

/**
* Created by samila on 22/12/17.
*/
data class User (val id : Long, val name : String,
val phone : String, val email : String,
val password: String ){

fun isValid() : Boolean {
return !name.isNullOrEmpty() && isEmailValid() && isPhoneValid() && !password.isNullOrEmpty()
}

private fun isEmailValid () : Boolean {
//TODO create and call a class that validates the email with the specific rules
return email.isNotEmpty()
}

private fun isPhoneValid () : Boolean {
// TODO create and call a class that validates the phone with the specific rules
return phone.isNotEmpty()
}
}
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
package br.com.samilaruane.carteiravirtual.repository

import android.content.Context
import android.util.Log
import br.com.samilaruane.carteiravirtual.domain.entities.User

/**
* Created by samila on 02/01/18.
*/
class SharedPreferencesHelper(ctx : Context) {
val SHARED_PREFERENCE_NAME = "tokens"
val SHARED_PREFERENCE_USER_TOKEN = "userToken"
val SHARED_PREFERENCE_USER_ID = "userId"

val sharedPreference = ctx.getSharedPreferences(SHARED_PREFERENCE_NAME, Context.MODE_PRIVATE)

Expand All @@ -19,4 +20,14 @@ class SharedPreferencesHelper(ctx : Context) {
fun getToken () : String {
return sharedPreference.getString(SHARED_PREFERENCE_USER_TOKEN, "")
}

fun saveUserId(user : User){
if(user.id != null) {
sharedPreference.edit().putLong(SHARED_PREFERENCE_USER_ID, user.id).commit()
}
}

fun getUserId () : Long{
return sharedPreference.getLong(SHARED_PREFERENCE_USER_ID, 0)
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package br.com.samilaruane.carteiravirtual.repository.db

import br.com.samilaruane.carteiravirtual.domain.Account
import br.com.samilaruane.carteiravirtual.domain.entities.Account


/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,10 @@ package br.com.samilaruane.carteiravirtual.repository.db

import android.content.ContentValues
import android.content.Context
import br.com.samilaruane.carteiravirtual.constants.BaseConstants
import br.com.samilaruane.carteiravirtual.constants.DatabaseConstants
import br.com.samilaruane.carteiravirtual.utils.constants.BaseConstants
import br.com.samilaruane.carteiravirtual.utils.constants.DatabaseConstants
import br.com.samilaruane.carteiravirtual.domain.*
import br.com.samilaruane.carteiravirtual.domain.entities.Account

/**
* Created by samila on 07/01/18.
Expand Down Expand Up @@ -54,7 +55,7 @@ class AccountRepositoryImpl private constructor(ctx : Context) : AccountReposito
BaseConstants.BRITA_ACCOUNT-> {coinReference = BritaCoin ()}
}

val item = Account(userId, coinReference, balance)
val item = Account(userId, coinReference, balance)

list.add(item)
}
Expand Down
Loading

0 comments on commit ad70e78

Please sign in to comment.