Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

πŸ”€ :: [#345] 인증제 νŽ˜μ΄μ§€ μ œμž‘ #342

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
Original file line number Diff line number Diff line change
Expand Up @@ -184,6 +184,18 @@ public extension TargetDependency.Feature {
}

public extension TargetDependency.Domain {
static let AuthenticationDomainTesting = TargetDependency.project(
target: ModulePaths.Domain.AuthenticationDomain.targetName(type: .testing),
path: .relativeToDomain(ModulePaths.Domain.AuthenticationDomain.rawValue)
)
static let AuthenticationDomainInterface = TargetDependency.project(
target: ModulePaths.Domain.AuthenticationDomain.targetName(type: .interface),
path: .relativeToDomain(ModulePaths.Domain.AuthenticationDomain.rawValue)
)
static let AuthenticationDomain = TargetDependency.project(
target: ModulePaths.Domain.AuthenticationDomain.targetName(type: .sources),
path: .relativeToDomain(ModulePaths.Domain.AuthenticationDomain.rawValue)
)
static let TeacherDomainTesting = TargetDependency.project(
target: ModulePaths.Domain.TeacherDomain.targetName(type: .testing),
path: .relativeToDomain(ModulePaths.Domain.TeacherDomain.rawValue)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ public extension ModulePaths {

public extension ModulePaths {
enum Domain: String {
case AuthenticationDomain
case TeacherDomain
case UserDomain
case TechStackDomain
Expand Down
1 change: 1 addition & 0 deletions Projects/App/Project.swift
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ let targets: [Target] = [
.Domain.UserDomain,
.Domain.TechStackDomain,
.Domain.TeacherDomain,
.Domain.AuthenticationDomain,
.Core.JwtStore,
.Shared.KeychainModule
],
Expand Down
12 changes: 12 additions & 0 deletions Projects/App/Sources/Application/DI/AppComponent.swift
Original file line number Diff line number Diff line change
@@ -1,10 +1,14 @@
import AuthDomain
import AuthDomainInterface
import AuthenticationDomain
import AuthenticationDomainInterface
import BaseDomain
import FileDomain
import FileDomainInterface
import FilterFeature
import FilterFeatureInterface
import GSMAuthenticationFormFeature
import GSMAuthenticationFormFeatureInterface
import InputCertificateInfoFeature
import InputCertificateInfoFeatureInterface
import InputInformationFeature
Expand Down Expand Up @@ -124,6 +128,10 @@ final class AppComponent: BootstrapComponent {
SplashComponent(parent: self)
}

public var gsmAuthenticationBuildable: any GSMAuthenticationBuildable {
GSMAuthenticationComponent(parent: self)
}

public var authDomainBuildable: any AuthDomainBuildable {
AuthDomainComponent(parent: self)
}
Expand Down Expand Up @@ -155,4 +163,8 @@ final class AppComponent: BootstrapComponent {
public var keychainBuildable: any KeychainBuildable {
KeychainComponent(parent: self)
}

public var authenticationDomainBuildable: any AuthenticationDomainBuildable {
AuthenticationDomainComponent(parent: self)
}
}
104 changes: 78 additions & 26 deletions Projects/App/Sources/Application/NeedleGenerated.swift
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,17 @@

import AuthDomain
import AuthDomainInterface
import AuthenticationDomain
import AuthenticationDomainInterface
import BaseDomain
import BaseFeature
import FileDomain
import FileDomainInterface
import FilterFeature
import FilterFeatureInterface
import Foundation
import GSMAuthenticationFormFeature
import GSMAuthenticationFormFeatureInterface
import InputAuthenticationFeatureInterface
import InputCertificateInfoFeature
import InputCertificateInfoFeatureInterface
Expand Down Expand Up @@ -84,6 +88,22 @@ private class JwtStoreDependency5613ee3d4fea5093f6faProvider: JwtStoreDependency
private func factoryb27d5aae1eb7e73575a6f47b58f8f304c97af4d5(_ component: NeedleFoundation.Scope) -> AnyObject {
return JwtStoreDependency5613ee3d4fea5093f6faProvider(appComponent: parent1(component) as! AppComponent)
}
private class GSMAuthenticationDependencydf257bda3051cc91534fProvider: GSMAuthenticationDependency {
var authenticationDomainBuildable: any AuthenticationDomainBuildable {
return appComponent.authenticationDomainBuildable
}
var fileDomainBuildable: any FileDomainBuildable {
return appComponent.fileDomainBuildable
}
private let appComponent: AppComponent
init(appComponent: AppComponent) {
self.appComponent = appComponent
}
}
/// ^->AppComponent->GSMAuthenticationComponent
private func factorye9687e0765e19ddd651cf47b58f8f304c97af4d5(_ component: NeedleFoundation.Scope) -> AnyObject {
return GSMAuthenticationDependencydf257bda3051cc91534fProvider(appComponent: parent1(component) as! AppComponent)
}
private class SplashDependencye0cb7136f2ec3edfd60aProvider: SplashDependency {
var authDomainBuildable: any AuthDomainBuildable {
return appComponent.authDomainBuildable
Expand Down Expand Up @@ -162,6 +182,9 @@ private class MainDependency7c6a5b4738b211b8e155Provider: MainDependency {
var studentDetailBuildable: any StudentDetailBuildable {
return appComponent.studentDetailBuildable
}
var gsmAuthenticationBuildable: any GSMAuthenticationBuildable {
return appComponent.gsmAuthenticationBuildable
}
var userDomainBuildable: any UserDomainBuildable {
return appComponent.userDomainBuildable
}
Expand Down Expand Up @@ -389,6 +412,19 @@ private class TechStackDomainDependencyc7e8371994569e951d57Provider: TechStackDo
private func factory254149359ff45b2db35bf47b58f8f304c97af4d5(_ component: NeedleFoundation.Scope) -> AnyObject {
return TechStackDomainDependencyc7e8371994569e951d57Provider(appComponent: parent1(component) as! AppComponent)
}
private class AuthenticationDomainDependency304198d4e760c1e9976dProvider: AuthenticationDomainDependency {
var jwtStoreBuildable: any JwtStoreBuildable {
return appComponent.jwtStoreBuildable
}
private let appComponent: AppComponent
init(appComponent: AppComponent) {
self.appComponent = appComponent
}
}
/// ^->AppComponent->AuthenticationDomainComponent
private func factory399be911d3fd8d0d070af47b58f8f304c97af4d5(_ component: NeedleFoundation.Scope) -> AnyObject {
return AuthenticationDomainDependency304198d4e760c1e9976dProvider(appComponent: parent1(component) as! AppComponent)
}
private class AuthDomainDependency4518b8977185a5c9ff71Provider: AuthDomainDependency {
var jwtStoreBuildable: any JwtStoreBuildable {
return appComponent.jwtStoreBuildable
Expand Down Expand Up @@ -438,38 +474,46 @@ extension JwtStoreComponent: Registration {
extension AppComponent: Registration {
public func registerItems() {

localTable["rootComponent-RootComponent"] = { [unowned self] in self.rootComponent as Any }
localTable["signinBuildable-any SigninBuildable"] = { [unowned self] in self.signinBuildable as Any }
localTable["inputInformationBuildable-any InputInformationBuildable"] = { [unowned self] in self.inputInformationBuildable as Any }
localTable["inputProfileInfoBuildable-any InputProfileInfoBuildable"] = { [unowned self] in self.inputProfileInfoBuildable as Any }
localTable["inputSchoolLifeInfoBuildable-any InputSchoolLifeInfoBuildable"] = { [unowned self] in self.inputSchoolLifeInfoBuildable as Any }
localTable["inputWorkInfoBuildable-any InputWorkInfoBuildable"] = { [unowned self] in self.inputWorkInfoBuildable as Any }
localTable["inputMilitaryInfoBuildable-any InputMilitaryInfoBuildable"] = { [unowned self] in self.inputMilitaryInfoBuildable as Any }
localTable["inputCertificateInfoBuildable-any InputCertificateInfoBuildable"] = { [unowned self] in self.inputCertificateInfoBuildable as Any }
localTable["inputLanguageInfoBuildable-any InputLanguageInfoBuildable"] = { [unowned self] in self.inputLanguageInfoBuildable as Any }
localTable["inputPrizeInfoBuildable-any InputPrizeInfoBuildable"] = { [unowned self] in self.inputPrizeInfoBuildable as Any }
localTable["inputProjectInfoBuildable-any InputProjectInfoBuildable"] = { [unowned self] in self.inputProjectInfoBuildable as Any }
localTable["mainBuildable-any MainBuildable"] = { [unowned self] in self.mainBuildable as Any }
localTable["myPageBuildable-any MyPageBuildable"] = { [unowned self] in self.myPageBuildable as Any }
localTable["techStackAppendBuildable-any TechStackAppendBuildable"] = { [unowned self] in self.techStackAppendBuildable as Any }
localTable["studentDetailBuildable-any StudentDetailBuildable"] = { [unowned self] in self.studentDetailBuildable as Any }
localTable["filterBuildable-any FilterBuildable"] = { [unowned self] in self.filterBuildable as Any }
localTable["splashBuildable-any SplashBuildable"] = { [unowned self] in self.splashBuildable as Any }
localTable["authDomainBuildable-any AuthDomainBuildable"] = { [unowned self] in self.authDomainBuildable as Any }
localTable["studentDomainBuildable-any StudentDomainBuildable"] = { [unowned self] in self.studentDomainBuildable as Any }
localTable["majorDomainBuildable-any MajorDomainBuildable"] = { [unowned self] in self.majorDomainBuildable as Any }
localTable["fileDomainBuildable-any FileDomainBuildable"] = { [unowned self] in self.fileDomainBuildable as Any }
localTable["userDomainBuildable-any UserDomainBuildable"] = { [unowned self] in self.userDomainBuildable as Any }
localTable["techStackDomainBuildable-any TechStackDomainBuildable"] = { [unowned self] in self.techStackDomainBuildable as Any }
localTable["jwtStoreBuildable-any JwtStoreBuildable"] = { [unowned self] in self.jwtStoreBuildable as Any }
localTable["keychainBuildable-any KeychainBuildable"] = { [unowned self] in self.keychainBuildable as Any }
localTable["rootComponent-RootComponent"] = { self.rootComponent as Any }
localTable["signinBuildable-any SigninBuildable"] = { self.signinBuildable as Any }
localTable["inputInformationBuildable-any InputInformationBuildable"] = { self.inputInformationBuildable as Any }
localTable["inputProfileInfoBuildable-any InputProfileInfoBuildable"] = { self.inputProfileInfoBuildable as Any }
localTable["inputSchoolLifeInfoBuildable-any InputSchoolLifeInfoBuildable"] = { self.inputSchoolLifeInfoBuildable as Any }
localTable["inputWorkInfoBuildable-any InputWorkInfoBuildable"] = { self.inputWorkInfoBuildable as Any }
localTable["inputMilitaryInfoBuildable-any InputMilitaryInfoBuildable"] = { self.inputMilitaryInfoBuildable as Any }
localTable["inputCertificateInfoBuildable-any InputCertificateInfoBuildable"] = { self.inputCertificateInfoBuildable as Any }
localTable["inputLanguageInfoBuildable-any InputLanguageInfoBuildable"] = { self.inputLanguageInfoBuildable as Any }
localTable["inputPrizeInfoBuildable-any InputPrizeInfoBuildable"] = { self.inputPrizeInfoBuildable as Any }
localTable["inputProjectInfoBuildable-any InputProjectInfoBuildable"] = { self.inputProjectInfoBuildable as Any }
localTable["mainBuildable-any MainBuildable"] = { self.mainBuildable as Any }
localTable["myPageBuildable-any MyPageBuildable"] = { self.myPageBuildable as Any }
localTable["techStackAppendBuildable-any TechStackAppendBuildable"] = { self.techStackAppendBuildable as Any }
localTable["studentDetailBuildable-any StudentDetailBuildable"] = { self.studentDetailBuildable as Any }
localTable["filterBuildable-any FilterBuildable"] = { self.filterBuildable as Any }
localTable["splashBuildable-any SplashBuildable"] = { self.splashBuildable as Any }
localTable["gsmAuthenticationBuildable-any GSMAuthenticationBuildable"] = { self.gsmAuthenticationBuildable as Any }
localTable["authDomainBuildable-any AuthDomainBuildable"] = { self.authDomainBuildable as Any }
localTable["studentDomainBuildable-any StudentDomainBuildable"] = { self.studentDomainBuildable as Any }
localTable["majorDomainBuildable-any MajorDomainBuildable"] = { self.majorDomainBuildable as Any }
localTable["fileDomainBuildable-any FileDomainBuildable"] = { self.fileDomainBuildable as Any }
localTable["userDomainBuildable-any UserDomainBuildable"] = { self.userDomainBuildable as Any }
localTable["techStackDomainBuildable-any TechStackDomainBuildable"] = { self.techStackDomainBuildable as Any }
localTable["jwtStoreBuildable-any JwtStoreBuildable"] = { self.jwtStoreBuildable as Any }
localTable["keychainBuildable-any KeychainBuildable"] = { self.keychainBuildable as Any }
localTable["authenticationDomainBuildable-any AuthenticationDomainBuildable"] = { self.authenticationDomainBuildable as Any }
}
}
extension KeychainComponent: Registration {
public func registerItems() {

}
}
extension GSMAuthenticationComponent: Registration {
public func registerItems() {
keyPathToName[\GSMAuthenticationDependency.authenticationDomainBuildable] = "authenticationDomainBuildable-any AuthenticationDomainBuildable"
keyPathToName[\GSMAuthenticationDependency.fileDomainBuildable] = "fileDomainBuildable-any FileDomainBuildable"
}
}
extension SplashComponent: Registration {
public func registerItems() {
keyPathToName[\SplashDependency.authDomainBuildable] = "authDomainBuildable-any AuthDomainBuildable"
Expand Down Expand Up @@ -501,6 +545,7 @@ extension MainComponent: Registration {
keyPathToName[\MainDependency.filterBuildable] = "filterBuildable-any FilterBuildable"
keyPathToName[\MainDependency.myPageBuildable] = "myPageBuildable-any MyPageBuildable"
keyPathToName[\MainDependency.studentDetailBuildable] = "studentDetailBuildable-any StudentDetailBuildable"
keyPathToName[\MainDependency.gsmAuthenticationBuildable] = "gsmAuthenticationBuildable-any GSMAuthenticationBuildable"
keyPathToName[\MainDependency.userDomainBuildable] = "userDomainBuildable-any UserDomainBuildable"
}
}
Expand Down Expand Up @@ -589,6 +634,11 @@ extension TechStackDomainComponent: Registration {
keyPathToName[\TechStackDomainDependency.jwtStoreBuildable] = "jwtStoreBuildable-any JwtStoreBuildable"
}
}
extension AuthenticationDomainComponent: Registration {
public func registerItems() {
keyPathToName[\AuthenticationDomainDependency.jwtStoreBuildable] = "jwtStoreBuildable-any JwtStoreBuildable"
}
}
extension AuthDomainComponent: Registration {
public func registerItems() {
keyPathToName[\AuthDomainDependency.jwtStoreBuildable] = "jwtStoreBuildable-any JwtStoreBuildable"
Expand Down Expand Up @@ -619,10 +669,11 @@ private func registerProviderFactory(_ componentPath: String, _ factory: @escapi

#if !NEEDLE_DYNAMIC

@inline(never) private func register1() {
private func register1() {
registerProviderFactory("^->AppComponent->JwtStoreComponent", factoryb27d5aae1eb7e73575a6f47b58f8f304c97af4d5)
registerProviderFactory("^->AppComponent", factoryEmptyDependencyProvider)
registerProviderFactory("^->AppComponent->KeychainComponent", factoryEmptyDependencyProvider)
registerProviderFactory("^->AppComponent->GSMAuthenticationComponent", factorye9687e0765e19ddd651cf47b58f8f304c97af4d5)
registerProviderFactory("^->AppComponent->SplashComponent", factoryace9f05f51d68f4c0677f47b58f8f304c97af4d5)
registerProviderFactory("^->AppComponent->InputProjectInfoComponent", factory2378736e5949c5e8e9f4f47b58f8f304c97af4d5)
registerProviderFactory("^->AppComponent->MyPageComponent", factory0f6f456ebf157d02dfb3f47b58f8f304c97af4d5)
Expand All @@ -643,6 +694,7 @@ private func registerProviderFactory(_ componentPath: String, _ factory: @escapi
registerProviderFactory("^->AppComponent->FileDomainComponent", factoryd99c631e7a9c4984df37f47b58f8f304c97af4d5)
registerProviderFactory("^->AppComponent->StudentDomainComponent", factory2686a7e321a220c3265af47b58f8f304c97af4d5)
registerProviderFactory("^->AppComponent->TechStackDomainComponent", factory254149359ff45b2db35bf47b58f8f304c97af4d5)
registerProviderFactory("^->AppComponent->AuthenticationDomainComponent", factory399be911d3fd8d0d070af47b58f8f304c97af4d5)
registerProviderFactory("^->AppComponent->AuthDomainComponent", factoryc9b20c320bb79402d4c1f47b58f8f304c97af4d5)
registerProviderFactory("^->AppComponent->MajorDomainComponent", factoryc6563cd3e82b012ec3bef47b58f8f304c97af4d5)
registerProviderFactory("^->AppComponent->UserDomainComponent", factory46488402f315d7f9530cf47b58f8f304c97af4d5)
Expand Down
5 changes: 5 additions & 0 deletions Projects/App/Support/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
<key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleExecutable</key>
Expand Down
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
@@ -0,0 +1,12 @@
{
"images" : [
{
"filename" : "Briefcases.png",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"images" : [
{
"filename" : "person.svg",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
8 changes: 8 additions & 0 deletions Projects/Core/DesignSystem/Sources/Icon/SMSIcon.swift
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ public struct SMSIcon: View {

public enum Icon: CaseIterable {
case book
case briefcases
case calendar
case camera
case check
Expand All @@ -31,6 +32,7 @@ public struct SMSIcon: View {
case greenCheck
case photo
case plus
case person
case profile
case profileSmallPlus
case redPerson
Expand Down Expand Up @@ -61,6 +63,9 @@ public struct SMSIcon: View {
case .book:
return DesignSystemAsset.Icons.book.swiftUIImage

case .briefcases:
return DesignSystemAsset.Icons.briefcases.swiftUIImage

case .calendar:
return DesignSystemAsset.Icons.calendar.swiftUIImage

Expand Down Expand Up @@ -94,6 +99,9 @@ public struct SMSIcon: View {
case .plus:
return DesignSystemAsset.Icons.plus.swiftUIImage

case .person:
return DesignSystemAsset.Icons.person.swiftUIImage

case .profile:
return DesignSystemAsset.Icons.profile.swiftUIImage

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,21 +3,27 @@ import SwiftUI
public struct TitleWrapperViewModifier: ViewModifier {
var text: String
var titlePosition: TitlePosition
var font: Font.SMSFontSystem
var color: Color.SMSColorSystem

public init(
_ text: String,
position: TitlePosition = .top(.leading)
position: TitlePosition = .top(.leading),
font: Font.SMSFontSystem = .body2,
color: Color.SMSColorSystem = .neutral(.n40)
) {
self.text = text
self.titlePosition = position
self.font = font
self.color = color
}

public func body(content: Content) -> some View {
switch titlePosition {
case let .top(alignment):
VStack(alignment: alignment.toSUI, spacing: 8) {
Text(text)
.smsFont(.body2, color: .neutral(.n40))
.smsFont(font, color: color)

content
}
Expand All @@ -27,7 +33,7 @@ public struct TitleWrapperViewModifier: ViewModifier {
content

Text(text)
.smsFont(.body2, color: .neutral(.n40))
.smsFont(font, color: color)
}
}
}
Expand All @@ -36,8 +42,10 @@ public struct TitleWrapperViewModifier: ViewModifier {
public extension View {
func titleWrapper(
_ text: String,
position: TitlePosition = .top(.leading)
position: TitlePosition = .top(.leading),
font: Font.SMSFontSystem = .body2,
color: Color.SMSColorSystem = .neutral(.n40)
) -> some View {
modifier(TitleWrapperViewModifier(text, position: position))
modifier(TitleWrapperViewModifier(text, position: position, font: font, color: color))
}
}
Loading
Loading