Skip to content

Commit

Permalink
Merge branch 'develop' into epic/moneymong-122-로그인-회원가입
Browse files Browse the repository at this point in the history
  • Loading branch information
eunseo0105 authored Aug 12, 2024
2 parents ef0d0f5 + f6b0536 commit d1d1457
Show file tree
Hide file tree
Showing 41 changed files with 649 additions and 175 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -6,40 +6,43 @@ import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableIntStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import com.moneymong.moneymong.design_system.theme.Body3
import com.moneymong.moneymong.design_system.theme.Gray03

@Composable
fun MDSSelection(
modifier: Modifier = Modifier,
text: String,
isSelected: Boolean,
enabled: Boolean = true,
isSelected: Boolean = false,
type: MDSSelectionType = MDSSelectionType.PRIMARY,
onClick: () -> Unit
onClick: () -> Unit = {}
) {

val backgroundColor =
if (isSelected) type.backgroundColor else unSelectedBackgroundColor
val contentColor =
if (isSelected) type.contentColor else unSelectedContentColor
val borderColor =
if (isSelected) type.backgroundColor else Gray03
val backgroundColor = selectionBackgroundColor(enabled, isSelected, type)
val contentColor = selectionContentColor(enabled, isSelected, type)
val borderColor = selectionBorderColor(enabled, isSelected, type)

Box(
modifier = modifier
.clip(RoundedCornerShape(8.dp))
.background(color = backgroundColor)
.clickable { onClick() }
.clickable(enabled = enabled) { onClick() }
.border(
width = 1.dp,
color = borderColor,
Expand All @@ -59,28 +62,35 @@ fun MDSSelection(
@Preview(showBackground = true)
@Composable
private fun MDSSelectionPreview() {
Row(
modifier = Modifier.fillMaxWidth(),
horizontalArrangement = Arrangement.spacedBy(10.dp)
var selectedType by remember { mutableIntStateOf(1) }

Box(
modifier = Modifier
.fillMaxSize()
.background(Color.White)
) {
MDSSelection(
modifier = Modifier.weight(1f),
text = "동아리",
isSelected = true,
onClick = {}
)
MDSSelection(
modifier = Modifier.weight(1f),
text = "나는 Secondary",
isSelected = true,
type = MDSSelectionType.SECONDARY,
onClick = {}
)
MDSSelection(
modifier = Modifier.weight(1f),
text = "학생회",
isSelected = false,
onClick = {}
)
Row(
modifier = Modifier.fillMaxWidth(),
horizontalArrangement = Arrangement.spacedBy(10.dp)
) {
MDSSelection(
modifier = Modifier.weight(1f),
text = "동아리",
isSelected = selectedType == 1,
onClick = { selectedType = 1 }
)
MDSSelection(
modifier = Modifier.weight(1f),
text = "나는 Secondary",
isSelected = selectedType == 2,
type = MDSSelectionType.SECONDARY,
onClick = { selectedType = 2 }
)
MDSSelection(
modifier = Modifier.weight(1f),
text = "나는 disabled",
enabled = false,
)
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
package com.moneymong.moneymong.design_system.component.selection

import androidx.compose.ui.graphics.Color
import com.moneymong.moneymong.design_system.theme.Blue01
import com.moneymong.moneymong.design_system.theme.Blue04
import com.moneymong.moneymong.design_system.theme.Gray03
import com.moneymong.moneymong.design_system.theme.Gray04
import com.moneymong.moneymong.design_system.theme.Gray05
import com.moneymong.moneymong.design_system.theme.White


enum class MDSSelectionType(
val backgroundColor: Color,
val contentColor: Color
) {
PRIMARY(
backgroundColor = Blue04,
contentColor = White
),
SECONDARY(
backgroundColor = Blue01,
contentColor = Blue04
)
}

internal val unSelectedBackgroundColor = White
internal val unSelectedContentColor = Gray05

internal val disabledBackgroundColor = Gray03
internal val disabledContentColor = Gray04

internal val selectionBackgroundColor: (
enabled: Boolean,
isSelected: Boolean,
type: MDSSelectionType
) -> Color = { enabled, isSelected, type ->
when {
enabled.not() -> disabledBackgroundColor
isSelected.not() -> unSelectedBackgroundColor
else -> type.backgroundColor
}
}

internal val selectionContentColor: (
enabled: Boolean,
isSelected: Boolean,
type: MDSSelectionType
) -> Color = { enabled, isSelected, type ->
when {
enabled.not() -> disabledContentColor
isSelected.not() -> unSelectedContentColor
else -> type.contentColor
}
}

internal val selectionBorderColor: (
enabled: Boolean,
isSelected: Boolean,
type: MDSSelectionType
) -> Color = { enabled, isSelected, type ->
when {
enabled.not() -> disabledBackgroundColor
isSelected.not() -> Gray03
else -> type.backgroundColor
}
}

This file was deleted.

Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.moneymong.moneymong.model.sign

data class UnivResponse(
val universityName: String,
val universityName: String?,
val grade: Int
)
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import com.moneymong.moneymong.model.agency.MyAgencyResponse
import com.moneymong.moneymong.model.agency.RegisterAgencyResponse
import com.moneymong.moneymong.model.member.InvitationCodeResponse
import retrofit2.http.Body
import retrofit2.http.DELETE
import retrofit2.http.GET
import retrofit2.http.Header
import retrofit2.http.PATCH
Expand Down Expand Up @@ -49,4 +50,10 @@ interface AgencyApi {
suspend fun reInvitationCode(
@Path("agencyId") agencyId: Long
): Result<InvitationCodeResponse>

//DELETE
@DELETE("api/v1/agencies/{agencyId}")
suspend fun deleteAgency(
@Path("agencyId") agencyId: Int
) : Result<Unit>
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.moneymong.moneymong.network.api

import com.moneymong.moneymong.model.sign.UnivRequest
import com.moneymong.moneymong.model.sign.UnivResponse
import com.moneymong.moneymong.model.sign.UniversitiesResponse
import retrofit2.http.Body
import retrofit2.http.GET
Expand All @@ -18,4 +19,7 @@ interface UniversityApi {
suspend fun searchUniv(
@Query("keyword") searchQuery: String
): Result<UniversitiesResponse>

@GET("api/v1/user-university")
suspend fun getMyUniv(): Result<UnivResponse>
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,15 @@ import com.google.gson.GsonBuilder
import com.moneymong.moneymong.network.BuildConfig
import com.moneymong.moneymong.network.adapter.ResultCallAdapterFactory
import com.moneymong.moneymong.network.api.AccessTokenApi
import com.moneymong.moneymong.network.api.UniversityApi
import com.moneymong.moneymong.network.util.AuthInterceptor
import com.moneymong.moneymong.network.api.MoneyMongApi
import com.moneymong.moneymong.network.api.AgencyApi
import com.moneymong.moneymong.network.api.ClovaApi
import com.moneymong.moneymong.network.api.LedgerApi
import com.moneymong.moneymong.network.api.LedgerDetailApi
import com.moneymong.moneymong.network.api.MemberApi
import com.moneymong.moneymong.network.api.MoneyMongApi
import com.moneymong.moneymong.network.api.UniversityApi
import com.moneymong.moneymong.network.api.UserApi
import com.moneymong.moneymong.network.util.AuthInterceptor
import com.moneymong.moneymong.network.util.MoneyMongTokenAuthenticator
import dagger.Module
import dagger.Provides
Expand Down Expand Up @@ -97,7 +97,7 @@ object NetworkModule {
addConverterFactory(GsonConverterFactory.create(gson))
addCallAdapterFactory(ResultCallAdapterFactory.create())
}.build()

@Provides
@Singleton
@ClovaRetrofit
Expand All @@ -112,7 +112,7 @@ object NetworkModule {
@Provides
fun provideMoneyMongApi(@MoneyMongRetrofit retrofit: Retrofit): MoneyMongApi =
retrofit.create(MoneyMongApi::class.java)

@Provides
fun provideUnivApi(@MoneyMongRetrofit retrofit: Retrofit): UniversityApi =
retrofit.create(UniversityApi::class.java)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,6 @@ interface MemberRemoteDataSource {
suspend fun getMemberLists(agencyId: Long): Result<MemberListResponse>
suspend fun updateMemberAuthor(agencyId : Long, data : UpdateAuthorRequest) : Result<Unit>
suspend fun blockMemberAuthor(agencyId: Long, data : MemberBlockRequest) : Result<Unit>
suspend fun deleteAgency(agencyId: Int) : Result<Unit>

}
Original file line number Diff line number Diff line change
Expand Up @@ -31,4 +31,8 @@ class MemberRemoteDataSourceImpl @Inject constructor(
override suspend fun blockMemberAuthor(agencyId: Long, data: MemberBlockRequest): Result<Unit> {
return memberApi.blockMemberAuthor(agencyId, data)
}

override suspend fun deleteAgency(agencyId: Int): Result<Unit> {
return agencyApi.deleteAgency(agencyId)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,13 @@ package com.moneymong.moneymong.data.datasource.signup

import com.moneymong.moneymong.model.sign.SearchQueryRequest
import com.moneymong.moneymong.model.sign.UnivRequest
import com.moneymong.moneymong.model.sign.UnivResponse
import com.moneymong.moneymong.model.sign.UniversitiesResponse

interface UnivRemoteDataSource {
suspend fun createUniv(body: UnivRequest) : Result<Unit>
suspend fun createUniv(body: UnivRequest): Result<Unit>

suspend fun searchUniv(searchQuery : SearchQueryRequest) : Result<UniversitiesResponse>
suspend fun searchUniv(searchQuery: SearchQueryRequest): Result<UniversitiesResponse>

suspend fun getMyUniv(): Result<UnivResponse>
}
Original file line number Diff line number Diff line change
@@ -1,17 +1,23 @@
package com.moneymong.moneymong.data.datasource.signup

import com.moneymong.moneymong.network.api.UniversityApi
import com.moneymong.moneymong.model.sign.SearchQueryRequest
import com.moneymong.moneymong.model.sign.UnivRequest
import com.moneymong.moneymong.model.sign.UnivResponse
import com.moneymong.moneymong.model.sign.UniversitiesResponse
import com.moneymong.moneymong.network.api.UniversityApi
import javax.inject.Inject

class UnivRemoteDataSourceImpl @Inject constructor(private val universityApi: UniversityApi) : UnivRemoteDataSource {
class UnivRemoteDataSourceImpl @Inject constructor(private val universityApi: UniversityApi) :
UnivRemoteDataSource {
override suspend fun createUniv(body: UnivRequest): Result<Unit> {
return universityApi.createUniv(body = body)
}

override suspend fun searchUniv(searchQuery: SearchQueryRequest): Result<UniversitiesResponse> {
return universityApi.searchUniv(searchQuery.searchQuery)
}

override suspend fun getMyUniv(): Result<UnivResponse> {
return universityApi.getMyUniv()
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -31,4 +31,8 @@ class MemberRepositoryImpl @Inject constructor(
return memberRemoteDataSource.blockMemberAuthor(agencyId, data)

}

override suspend fun deleteAgency(agencyId: Int): Result<Unit> {
return memberRemoteDataSource.deleteAgency(agencyId)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import com.moneymong.moneymong.data.datasource.signup.UnivRemoteDataSource
import com.moneymong.moneymong.domain.repository.UnivRepository
import com.moneymong.moneymong.model.sign.SearchQueryRequest
import com.moneymong.moneymong.model.sign.UnivRequest
import com.moneymong.moneymong.model.sign.UnivResponse
import com.moneymong.moneymong.model.sign.UniversitiesResponse
import javax.inject.Inject

Expand All @@ -17,4 +18,8 @@ class UnivRepositoryImpl @Inject constructor(
override suspend fun searchUniv(searchQuery: SearchQueryRequest): Result<UniversitiesResponse> {
return univRemoteDataSource.searchUniv(searchQuery)
}

override suspend fun getMyUniv(): Result<UnivResponse> {
return univRemoteDataSource.getMyUniv()
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,13 @@ package com.moneymong.moneymong.domain.repository

import com.moneymong.moneymong.model.sign.SearchQueryRequest
import com.moneymong.moneymong.model.sign.UnivRequest
import com.moneymong.moneymong.model.sign.UnivResponse
import com.moneymong.moneymong.model.sign.UniversitiesResponse

interface UnivRepository {
suspend fun createUniv(body: UnivRequest) : Result<Unit>
suspend fun createUniv(body: UnivRequest): Result<Unit>

suspend fun searchUniv(searchQuery: SearchQueryRequest) : Result<UniversitiesResponse>
suspend fun searchUniv(searchQuery: SearchQueryRequest): Result<UniversitiesResponse>

suspend fun getMyUniv(): Result<UnivResponse>
}
Loading

0 comments on commit d1d1457

Please sign in to comment.