Skip to content

Commit c9c6b40

Browse files
authored
Merge pull request #264 from Team-return/feature/(#262)-bug_fix_and_feature
🔗 :: (#262) 미완성 기능 구현 및 버그 수정
2 parents 15421ed + 98bd120 commit c9c6b40

File tree

42 files changed

+864
-127
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+864
-127
lines changed

Projects/Data/Sources/DI/DataSourceAssembly.swift

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,5 +73,13 @@ public final class DataSourceAssembly: Assembly {
7373
container.register(RemoteNotificationsDataSource.self) { resolver in
7474
RemoteNotificationsDataSourceImpl(keychain: self.keychain(resolver))
7575
}
76+
77+
container.register(RemoteWinterInternDataSource.self) { resolver in
78+
RemoteWinterInternDataSourceImpl(keychain: self.keychain(resolver))
79+
}
80+
81+
container.register(RemoteSystemDataSource.self) { resolver in
82+
RemoteSystemDataSourceImpl(keychain: self.keychain(resolver))
83+
}
7684
}
7785
}

Projects/Data/Sources/DI/RepositoryAssembly.swift

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,5 +93,17 @@ public final class RepositoryAssembly: Assembly {
9393
remoteNotificationsDataSource: resolver.resolve(RemoteNotificationsDataSource.self)!
9494
)
9595
}
96+
97+
container.register(WinterInternRepository.self) { resolver in
98+
WinterInternRepositoryImpl(
99+
remoteWinterInternDataSource: resolver.resolve(RemoteWinterInternDataSource.self)!
100+
)
101+
}
102+
103+
container.register(SystemRepository.self) { resolver in
104+
SystemRepositoryImpl(
105+
remoteSystemDataSource: resolver.resolve(RemoteSystemDataSource.self)!
106+
)
107+
}
96108
}
97109
}

Projects/Data/Sources/DI/UseCaseAssembly.swift

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,12 @@ public final class UseCaseAssembly: Assembly {
3434
usersRepository: resolver.resolve(UsersRepository.self)!
3535
)
3636
}
37+
container.register(DeleteDeviceTokenUseCase.self) { resolver in
38+
DeleteDeviceTokenUseCase(
39+
usersRepository: resolver.resolve(UsersRepository.self)!
40+
)
41+
}
42+
3743

3844
// Students
3945
container.register(ChangePasswordUseCase.self) { reslover in
@@ -243,5 +249,19 @@ public final class UseCaseAssembly: Assembly {
243249
notificationsRepository: resolver.resolve(NotificationsRepository.self)!
244250
)
245251
}
252+
253+
// WinterIntern
254+
container.register(FetchWinterInternSeasonUseCase.self) { resolver in
255+
FetchWinterInternSeasonUseCase(
256+
winterInternRepository: resolver.resolve(WinterInternRepository.self)!
257+
)
258+
}
259+
260+
// System
261+
container.register(FetchServerStatusUseCase.self) { resolver in
262+
FetchServerStatusUseCase(
263+
systemRepository: resolver.resolve(SystemRepository.self)!
264+
)
265+
}
246266
}
247267
}

Projects/Data/Sources/DTO/Companies/CompanyInfoDetailResponseDTO.swift

Lines changed: 11 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ struct CompanyInfoDetailResponseDTO: Decodable {
77
let companyProfileURL: String
88
let companyIntroduce: String
99
let mainZipCode, mainAddress, mainAddressDetail: String
10-
let subZipCode, subAddress, subAddressDetail: String?
11-
let managerName, managerPhoneNo: String
12-
let subManagerName, subManagerPhoneNo, fax: String?
10+
// let subZipCode, subAddress, subAddressDetail: String?
11+
let managerName: String
12+
// let subManagerName, subManagerPhoneNo, fax: String?
1313
let email, representativeName, representativePhoneNo, foundedAt: String
1414
let workerNumber: Int
1515
let take: Double
@@ -26,14 +26,14 @@ struct CompanyInfoDetailResponseDTO: Decodable {
2626
case mainZipCode = "main_zip_code"
2727
case mainAddress = "main_address"
2828
case mainAddressDetail = "main_address_detail"
29-
case subZipCode = "sub_zip_code"
30-
case subAddress = "sub_address"
31-
case subAddressDetail = "sub_address_detail"
29+
// case subZipCode = "sub_zip_code"
30+
// case subAddress = "sub_address"
31+
// case subAddressDetail = "sub_address_detail"
3232
case managerName = "manager_name"
33-
case managerPhoneNo = "manager_phone_no"
34-
case subManagerName = "sub_manager_name"
35-
case subManagerPhoneNo = "sub_manager_phone_no"
36-
case fax, email
33+
// case managerPhoneNo = "manager_phone_no"
34+
// case subManagerName = "sub_manager_name"
35+
// case subManagerPhoneNo = "sub_manager_phone_no"
36+
case email
3737
case representativeName = "representative_name"
3838
case representativePhoneNo = "representative_phone_no"
3939
case foundedAt = "founded_at"
@@ -56,14 +56,8 @@ extension CompanyInfoDetailResponseDTO {
5656
mainZipCode: mainZipCode,
5757
mainAddress: mainAddress,
5858
mainAddressDetail: mainAddressDetail,
59-
subZipCode: subZipCode ?? "없음",
60-
subAddress: subAddress ?? "없음",
61-
subAddressDetail: subAddressDetail ?? "없음",
6259
managerName: managerName,
63-
managerPhoneNo: managerPhoneNo,
64-
subManagerName: subManagerName ?? "없음",
65-
subManagerPhoneNo: subManagerPhoneNo ?? "없음",
66-
fax: fax ?? "없음",
60+
// managerPhoneNo: managerPhoneNo,
6761
email: email,
6862
representativeName: representativeName,
6963
representativePhoneNo: representativePhoneNo,
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
import Moya
2+
import Domain
3+
import AppNetwork
4+
5+
enum SystemAPI {
6+
case fetchServerStatus
7+
}
8+
9+
extension SystemAPI: JobisAPI {
10+
typealias ErrorType = UsersError
11+
12+
var domain: JobisDomain {
13+
.presignedURL
14+
}
15+
16+
var urlPath: String {
17+
switch self {
18+
case .fetchServerStatus:
19+
return ""
20+
}
21+
}
22+
23+
var method: Method {
24+
switch self {
25+
case .fetchServerStatus:
26+
return .get
27+
}
28+
}
29+
30+
var task: Task {
31+
switch self {
32+
default:
33+
return .requestPlain
34+
}
35+
}
36+
37+
var jwtTokenType: JwtTokenType {
38+
switch self {
39+
default:
40+
return .none
41+
}
42+
}
43+
44+
var errorMap: [Int: ErrorType]? {
45+
return nil
46+
}
47+
}

Projects/Data/Sources/DataSource/API/UsersAPI.swift

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import AppNetwork
44

55
enum UsersAPI {
66
case signin(SigninRequestQuery)
7+
case deleteDeviceToken
78
}
89

910
extension UsersAPI: JobisAPI {
@@ -17,25 +18,33 @@ extension UsersAPI: JobisAPI {
1718
switch self {
1819
case .signin:
1920
return "/login"
21+
case .deleteDeviceToken:
22+
return "/device-token"
2023
}
2124
}
2225

2326
var method: Method {
2427
switch self {
2528
case .signin:
2629
return .post
30+
case .deleteDeviceToken:
31+
return .patch
2732
}
2833
}
2934

3035
var task: Task {
3136
switch self {
3237
case let .signin(req):
3338
return .requestJSONEncodable(req)
39+
default:
40+
return .requestPlain
3441
}
3542
}
3643

3744
var jwtTokenType: JwtTokenType {
3845
switch self {
46+
case .deleteDeviceToken:
47+
return .accessToken
3948
default:
4049
return .none
4150
}
@@ -50,6 +59,8 @@ extension UsersAPI: JobisAPI {
5059
404: .notFoundEmail,
5160
500: .internalServerError
5261
]
62+
default:
63+
return nil
5364
}
5465
}
5566
}
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
import Moya
2+
import Domain
3+
import AppNetwork
4+
5+
enum WinterInternAPI {
6+
case fetchWinterInternSeason
7+
}
8+
9+
extension WinterInternAPI: JobisAPI {
10+
typealias ErrorType = JobisError
11+
12+
var domain: JobisDomain {
13+
.winterIntern
14+
}
15+
16+
var urlPath: String {
17+
switch self {
18+
case .fetchWinterInternSeason:
19+
return ""
20+
}
21+
}
22+
23+
var method: Moya.Method {
24+
switch self {
25+
case .fetchWinterInternSeason:
26+
return .get
27+
}
28+
}
29+
30+
var task: Moya.Task {
31+
switch self {
32+
default:
33+
return .requestPlain
34+
}
35+
}
36+
37+
var jwtTokenType: JwtTokenType {
38+
.accessToken
39+
}
40+
41+
var errorMap: [Int: ErrorType]? {
42+
switch self {
43+
case .fetchWinterInternSeason:
44+
return [:]
45+
}
46+
}
47+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import RxSwift
2+
import Domain
3+
4+
protocol RemoteSystemDataSource {
5+
func fetchServerStatus() -> Completable
6+
}
7+
8+
final class RemoteSystemDataSourceImpl: RemoteBaseDataSource<SystemAPI>, RemoteSystemDataSource {
9+
func fetchServerStatus() -> Completable {
10+
request(.fetchServerStatus)
11+
.asCompletable()
12+
}
13+
}

Projects/Data/Sources/DataSource/Remote/RemoteUsersDataSource.swift

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import Domain
33

44
protocol RemoteUsersDataSource {
55
func signin(req: SigninRequestQuery) -> Single<AuthorityType>
6+
func deleteDeviceToken() -> Completable
67
}
78

89
final class RemoteUsersDataSourceImpl: RemoteBaseDataSource<UsersAPI>, RemoteUsersDataSource {
@@ -11,4 +12,9 @@ final class RemoteUsersDataSourceImpl: RemoteBaseDataSource<UsersAPI>, RemoteUse
1112
.map(AuthTokenResponseDTO.self)
1213
.map { $0.toDomain() }
1314
}
15+
16+
func deleteDeviceToken() -> Completable {
17+
request(.deleteDeviceToken)
18+
.asCompletable()
19+
}
1420
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import Foundation
2+
import RxSwift
3+
import Domain
4+
5+
protocol RemoteWinterInternDataSource {
6+
func fetchWinterInternSeason() -> Single<Bool>
7+
}
8+
9+
final class RemoteWinterInternDataSourceImpl: RemoteBaseDataSource<WinterInternAPI>, RemoteWinterInternDataSource {
10+
func fetchWinterInternSeason() -> Single<Bool> {
11+
return request(.fetchWinterInternSeason)
12+
.map { response -> Bool in
13+
if let data = try? JSONDecoder().decode(Bool.self, from: response.data) {
14+
return data
15+
} else {
16+
print("failed to load winterInterSeason")
17+
return false
18+
}
19+
}
20+
}
21+
22+
}

0 commit comments

Comments
 (0)