Skip to content

Commit

Permalink
Merge pull request #264 from Team-return/feature/(#262)-bug_fix_and_f…
Browse files Browse the repository at this point in the history
…eature

🔗 :: (#262) 미완성 기능 구현 및 버그 수정
  • Loading branch information
cyj513 authored Oct 25, 2024
2 parents 15421ed + 98bd120 commit c9c6b40
Show file tree
Hide file tree
Showing 42 changed files with 864 additions and 127 deletions.
8 changes: 8 additions & 0 deletions Projects/Data/Sources/DI/DataSourceAssembly.swift
Original file line number Diff line number Diff line change
Expand Up @@ -73,5 +73,13 @@ public final class DataSourceAssembly: Assembly {
container.register(RemoteNotificationsDataSource.self) { resolver in
RemoteNotificationsDataSourceImpl(keychain: self.keychain(resolver))
}

container.register(RemoteWinterInternDataSource.self) { resolver in
RemoteWinterInternDataSourceImpl(keychain: self.keychain(resolver))
}

container.register(RemoteSystemDataSource.self) { resolver in
RemoteSystemDataSourceImpl(keychain: self.keychain(resolver))
}
}
}
12 changes: 12 additions & 0 deletions Projects/Data/Sources/DI/RepositoryAssembly.swift
Original file line number Diff line number Diff line change
Expand Up @@ -93,5 +93,17 @@ public final class RepositoryAssembly: Assembly {
remoteNotificationsDataSource: resolver.resolve(RemoteNotificationsDataSource.self)!
)
}

container.register(WinterInternRepository.self) { resolver in
WinterInternRepositoryImpl(
remoteWinterInternDataSource: resolver.resolve(RemoteWinterInternDataSource.self)!
)
}

container.register(SystemRepository.self) { resolver in
SystemRepositoryImpl(
remoteSystemDataSource: resolver.resolve(RemoteSystemDataSource.self)!
)
}
}
}
20 changes: 20 additions & 0 deletions Projects/Data/Sources/DI/UseCaseAssembly.swift
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,12 @@ public final class UseCaseAssembly: Assembly {
usersRepository: resolver.resolve(UsersRepository.self)!
)
}
container.register(DeleteDeviceTokenUseCase.self) { resolver in
DeleteDeviceTokenUseCase(
usersRepository: resolver.resolve(UsersRepository.self)!
)
}


// Students
container.register(ChangePasswordUseCase.self) { reslover in
Expand Down Expand Up @@ -243,5 +249,19 @@ public final class UseCaseAssembly: Assembly {
notificationsRepository: resolver.resolve(NotificationsRepository.self)!
)
}

// WinterIntern
container.register(FetchWinterInternSeasonUseCase.self) { resolver in
FetchWinterInternSeasonUseCase(
winterInternRepository: resolver.resolve(WinterInternRepository.self)!
)
}

// System
container.register(FetchServerStatusUseCase.self) { resolver in
FetchServerStatusUseCase(
systemRepository: resolver.resolve(SystemRepository.self)!
)
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ struct CompanyInfoDetailResponseDTO: Decodable {
let companyProfileURL: String
let companyIntroduce: String
let mainZipCode, mainAddress, mainAddressDetail: String
let subZipCode, subAddress, subAddressDetail: String?
let managerName, managerPhoneNo: String
let subManagerName, subManagerPhoneNo, fax: String?
// let subZipCode, subAddress, subAddressDetail: String?
let managerName: String
// let subManagerName, subManagerPhoneNo, fax: String?
let email, representativeName, representativePhoneNo, foundedAt: String
let workerNumber: Int
let take: Double
Expand All @@ -26,14 +26,14 @@ struct CompanyInfoDetailResponseDTO: Decodable {
case mainZipCode = "main_zip_code"
case mainAddress = "main_address"
case mainAddressDetail = "main_address_detail"
case subZipCode = "sub_zip_code"
case subAddress = "sub_address"
case subAddressDetail = "sub_address_detail"
// case subZipCode = "sub_zip_code"
// case subAddress = "sub_address"
// case subAddressDetail = "sub_address_detail"
case managerName = "manager_name"
case managerPhoneNo = "manager_phone_no"
case subManagerName = "sub_manager_name"
case subManagerPhoneNo = "sub_manager_phone_no"
case fax, email
// case managerPhoneNo = "manager_phone_no"
// case subManagerName = "sub_manager_name"
// case subManagerPhoneNo = "sub_manager_phone_no"
case email
case representativeName = "representative_name"
case representativePhoneNo = "representative_phone_no"
case foundedAt = "founded_at"
Expand All @@ -56,14 +56,8 @@ extension CompanyInfoDetailResponseDTO {
mainZipCode: mainZipCode,
mainAddress: mainAddress,
mainAddressDetail: mainAddressDetail,
subZipCode: subZipCode ?? "없음",
subAddress: subAddress ?? "없음",
subAddressDetail: subAddressDetail ?? "없음",
managerName: managerName,
managerPhoneNo: managerPhoneNo,
subManagerName: subManagerName ?? "없음",
subManagerPhoneNo: subManagerPhoneNo ?? "없음",
fax: fax ?? "없음",
// managerPhoneNo: managerPhoneNo,
email: email,
representativeName: representativeName,
representativePhoneNo: representativePhoneNo,
Expand Down
47 changes: 47 additions & 0 deletions Projects/Data/Sources/DataSource/API/SystemAPI.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
import Moya
import Domain
import AppNetwork

enum SystemAPI {
case fetchServerStatus
}

extension SystemAPI: JobisAPI {
typealias ErrorType = UsersError

var domain: JobisDomain {
.presignedURL
}

var urlPath: String {
switch self {
case .fetchServerStatus:
return ""
}
}

var method: Method {
switch self {
case .fetchServerStatus:
return .get
}
}

var task: Task {
switch self {
default:
return .requestPlain
}
}

var jwtTokenType: JwtTokenType {
switch self {
default:
return .none
}
}

var errorMap: [Int: ErrorType]? {
return nil
}
}
11 changes: 11 additions & 0 deletions Projects/Data/Sources/DataSource/API/UsersAPI.swift
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import AppNetwork

enum UsersAPI {
case signin(SigninRequestQuery)
case deleteDeviceToken
}

extension UsersAPI: JobisAPI {
Expand All @@ -17,25 +18,33 @@ extension UsersAPI: JobisAPI {
switch self {
case .signin:
return "/login"
case .deleteDeviceToken:
return "/device-token"
}
}

var method: Method {
switch self {
case .signin:
return .post
case .deleteDeviceToken:
return .patch
}
}

var task: Task {
switch self {
case let .signin(req):
return .requestJSONEncodable(req)
default:
return .requestPlain
}
}

var jwtTokenType: JwtTokenType {
switch self {
case .deleteDeviceToken:
return .accessToken
default:
return .none
}
Expand All @@ -50,6 +59,8 @@ extension UsersAPI: JobisAPI {
404: .notFoundEmail,
500: .internalServerError
]
default:
return nil
}
}
}
47 changes: 47 additions & 0 deletions Projects/Data/Sources/DataSource/API/WinterInternAPI.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
import Moya
import Domain
import AppNetwork

enum WinterInternAPI {
case fetchWinterInternSeason
}

extension WinterInternAPI: JobisAPI {
typealias ErrorType = JobisError

var domain: JobisDomain {
.winterIntern
}

var urlPath: String {
switch self {
case .fetchWinterInternSeason:
return ""
}
}

var method: Moya.Method {
switch self {
case .fetchWinterInternSeason:
return .get
}
}

var task: Moya.Task {
switch self {
default:
return .requestPlain
}
}

var jwtTokenType: JwtTokenType {
.accessToken
}

var errorMap: [Int: ErrorType]? {
switch self {
case .fetchWinterInternSeason:
return [:]
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import RxSwift
import Domain

protocol RemoteSystemDataSource {
func fetchServerStatus() -> Completable
}

final class RemoteSystemDataSourceImpl: RemoteBaseDataSource<SystemAPI>, RemoteSystemDataSource {
func fetchServerStatus() -> Completable {
request(.fetchServerStatus)
.asCompletable()
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import Domain

protocol RemoteUsersDataSource {
func signin(req: SigninRequestQuery) -> Single<AuthorityType>
func deleteDeviceToken() -> Completable
}

final class RemoteUsersDataSourceImpl: RemoteBaseDataSource<UsersAPI>, RemoteUsersDataSource {
Expand All @@ -11,4 +12,9 @@ final class RemoteUsersDataSourceImpl: RemoteBaseDataSource<UsersAPI>, RemoteUse
.map(AuthTokenResponseDTO.self)
.map { $0.toDomain() }
}

func deleteDeviceToken() -> Completable {
request(.deleteDeviceToken)
.asCompletable()
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import Foundation
import RxSwift
import Domain

protocol RemoteWinterInternDataSource {
func fetchWinterInternSeason() -> Single<Bool>
}

final class RemoteWinterInternDataSourceImpl: RemoteBaseDataSource<WinterInternAPI>, RemoteWinterInternDataSource {
func fetchWinterInternSeason() -> Single<Bool> {
return request(.fetchWinterInternSeason)
.map { response -> Bool in
if let data = try? JSONDecoder().decode(Bool.self, from: response.data) {
return data
} else {
print("failed to load winterInterSeason")
return false
}
}
}

}
15 changes: 15 additions & 0 deletions Projects/Data/Sources/Repositories/SystemRepositoryImpl.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import RxSwift
import Domain

struct SystemRepositoryImpl: SystemRepository {
private let remoteSystemDataSource: any RemoteSystemDataSource

init(remoteSystemDataSource: any RemoteSystemDataSource) {
self.remoteSystemDataSource = remoteSystemDataSource
}

func fetchServerStatus() -> Completable {
remoteSystemDataSource.fetchServerStatus()
}

}
4 changes: 4 additions & 0 deletions Projects/Data/Sources/Repositories/UsersRepositoryImpl.swift
Original file line number Diff line number Diff line change
Expand Up @@ -20,4 +20,8 @@ struct UsersRepositoryImpl: UsersRepository {
func logout() {
localUsersDataSource.clearTokens()
}

func deleteDeviceToken() -> Completable {
remoteUsersDataSource.deleteDeviceToken()
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import RxSwift
import Domain

struct WinterInternRepositoryImpl: WinterInternRepository {
private let remoteWinterInternDataSource: any RemoteWinterInternDataSource

init(remoteWinterInternDataSource: any RemoteWinterInternDataSource) {
self.remoteWinterInternDataSource = remoteWinterInternDataSource
}

func fetchWinterInternSeason() -> Single<Bool> {
remoteWinterInternDataSource.fetchWinterInternSeason()
}
}
Loading

0 comments on commit c9c6b40

Please sign in to comment.