Skip to content

Commit

Permalink
✨ :: [#380] InputCompanyFeature / 기업 등록 기능 추가
Browse files Browse the repository at this point in the history
  • Loading branch information
uuuunseo committed Jul 23, 2024
1 parent 055c383 commit 6151539
Show file tree
Hide file tree
Showing 6 changed files with 62 additions and 11 deletions.
18 changes: 10 additions & 8 deletions App/Sources/Application/NeedleGenerated.swift
Original file line number Diff line number Diff line change
Expand Up @@ -165,15 +165,17 @@ private func factory306e8ce5cfdf41304709f47b58f8f304c97af4d5(_ component: Needle
return SignUpDependencyf83ac0c64026320e6dc2Provider(appComponent: parent1(component) as! AppComponent)
}
private class InputCompanyDependencyc9d68514782dbceb6f25Provider: InputCompanyDependency {


init() {

var createdCompanyUseCase: any CreatedCompanyUseCase {
return appComponent.createdCompanyUseCase
}
private let appComponent: AppComponent
init(appComponent: AppComponent) {
self.appComponent = appComponent
}
}
/// ^->AppComponent->InputCompanyComponent
private func factoryb7c98d723f97530cea08e3b0c44298fc1c149afb(_ component: NeedleFoundation.Scope) -> AnyObject {
return InputCompanyDependencyc9d68514782dbceb6f25Provider()
private func factoryb7c98d723f97530cea08f47b58f8f304c97af4d5(_ component: NeedleFoundation.Scope) -> AnyObject {
return InputCompanyDependencyc9d68514782dbceb6f25Provider(appComponent: parent1(component) as! AppComponent)
}
private class ActivityDetailSettingDependency0b98c5f90168b920a8b8Provider: ActivityDetailSettingDependency {

Expand Down Expand Up @@ -987,7 +989,7 @@ extension SignUpComponent: Registration {
}
extension InputCompanyComponent: Registration {
public func registerItems() {

keyPathToName[\InputCompanyDependency.createdCompanyUseCase] = "createdCompanyUseCase-any CreatedCompanyUseCase"
}
}
extension ActivityDetailSettingComponent: Registration {
Expand Down Expand Up @@ -1459,7 +1461,7 @@ private func registerProviderFactory(_ componentPath: String, _ factory: @escapi
registerProviderFactory("^->AppComponent->LectureListDetailComponent", factory22af859a70aa8ba0b346f47b58f8f304c97af4d5)
registerProviderFactory("^->AppComponent->NoticeListComponent", factorye14e687c08985bdffcd0f47b58f8f304c97af4d5)
registerProviderFactory("^->AppComponent->SignUpComponent", factory306e8ce5cfdf41304709f47b58f8f304c97af4d5)
registerProviderFactory("^->AppComponent->InputCompanyComponent", factoryb7c98d723f97530cea08e3b0c44298fc1c149afb)
registerProviderFactory("^->AppComponent->InputCompanyComponent", factoryb7c98d723f97530cea08f47b58f8f304c97af4d5)
registerProviderFactory("^->AppComponent->ActivityDetailSettingComponent", factoryfd595280dea209e217b9e3b0c44298fc1c149afb)
registerProviderFactory("^->AppComponent->MainTabComponent", factory1ab5a747ddf21e1393f9f47b58f8f304c97af4d5)
registerProviderFactory("^->AppComponent->NoticeDetailSettingComponent", factory24d19202afbef2333be9e3b0c44298fc1c149afb)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ public struct InputDataView: View {
selectedField: selectedField
) { field in
selectedField = field
isShowingFieldBottomSheet = false
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,16 @@ import NeedleFoundation
import SwiftUI
import Service

public protocol InputCompanyDependency: Dependency {}
public protocol InputCompanyDependency: Dependency {
var createdCompanyUseCase: any CreatedCompanyUseCase { get }
}

public final class InputCompanyComponent: Component<InputCompanyDependency>, InputCompanyFactory {
public func makeView() -> some View {
InputCompanyView(viewModel: .init())
InputCompanyView(
viewModel: .init(
createdCompanyUseCase: dependency.createdCompanyUseCase
)
)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import SwiftUI

struct InputCompanyView: View {
@StateObject var viewModel: InputCompanyViewModel
@Environment(\.dismiss) var dismiss

init(viewModel: InputCompanyViewModel) {
_viewModel = StateObject(wrappedValue: viewModel)
Expand All @@ -15,8 +16,14 @@ struct InputCompanyView: View {
selectedField: $viewModel.selectedFieldType,
name: $viewModel.companyName
) {

viewModel.createCompany {
dismiss()
}
}
}
.bitgouelToast(
text: viewModel.errorMessage,
isShowing: $viewModel.isErrorOccurred
)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,31 @@ import Service
final class InputCompanyViewModel: BaseViewModel {
@Published var selectedFieldType: FieldType?
@Published var companyName: String = ""

private let createdCompanyUseCase: any CreatedCompanyUseCase

init(createdCompanyUseCase: any CreatedCompanyUseCase) {
self.createdCompanyUseCase = createdCompanyUseCase
}

@MainActor
func createCompany(_ success: @escaping () -> Void) {
guard let field = selectedFieldType else { return }

Task {
do {
try await createdCompanyUseCase(
req: CreatedCompanyRequestDTO(
companyName: companyName,
field: field
)
)

success()
} catch {
errorMessage = error.companyDomainErrorMessage()
isErrorOccurred = true
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,12 @@ import Foundation
public struct CreatedCompanyRequestDTO: Encodable {
public let companyName: String
public let field: FieldType

public init(
companyName: String,
field: FieldType
) {
self.companyName = companyName
self.field = field
}
}

0 comments on commit 6151539

Please sign in to comment.