Skip to content

Commit

Permalink
Merge pull request #294 from OMZigak/refactor/#293-protocolRename
Browse files Browse the repository at this point in the history
[refactor] 프로토콜 및 서비스타입 리팩
  • Loading branch information
hooni0918 authored Aug 16, 2024
2 parents c877ce5 + 08ec465 commit 3382226
Show file tree
Hide file tree
Showing 3 changed files with 72 additions and 44 deletions.
12 changes: 12 additions & 0 deletions KkuMulKum.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
782B407D2C3E3984008B0CA7 /* WelcomeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 782B407C2C3E3984008B0CA7 /* WelcomeViewController.swift */; };
782B407F2C3E44B7008B0CA7 /* WelcomeViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 782B407E2C3E44B7008B0CA7 /* WelcomeViewModel.swift */; };
782B40822C3E4925008B0CA7 /* NicknameViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 782B40812C3E4925008B0CA7 /* NicknameViewModel.swift */; };
784824F72C6E1C9900FE07A0 /* AuthServiceProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 784824F62C6E1C9900FE07A0 /* AuthServiceProtocol.swift */; };
784E4D942C3B1C7F00BC943C /* KakaoSDK in Frameworks */ = {isa = PBXBuildFile; productRef = 784E4D932C3B1C7F00BC943C /* KakaoSDK */; };
784E4D962C3B1C7F00BC943C /* KakaoSDKAuth in Frameworks */ = {isa = PBXBuildFile; productRef = 784E4D952C3B1C7F00BC943C /* KakaoSDKAuth */; };
784E4D992C3B95A900BC943C /* KeychainAccess in Frameworks */ = {isa = PBXBuildFile; productRef = 784E4D982C3B95A900BC943C /* KeychainAccess */; };
Expand Down Expand Up @@ -246,6 +247,7 @@
782B407C2C3E3984008B0CA7 /* WelcomeViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WelcomeViewController.swift; sourceTree = "<group>"; };
782B407E2C3E44B7008B0CA7 /* WelcomeViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WelcomeViewModel.swift; sourceTree = "<group>"; };
782B40812C3E4925008B0CA7 /* NicknameViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NicknameViewModel.swift; sourceTree = "<group>"; };
784824F62C6E1C9900FE07A0 /* AuthServiceProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthServiceProtocol.swift; sourceTree = "<group>"; };
785AE1D02C3B07A600677CA0 /* PrivacyInfo.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = PrivacyInfo.plist; sourceTree = "<group>"; };
789196332C486F6B00FF8CDF /* KeychainAccessible.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KeychainAccessible.swift; sourceTree = "<group>"; };
789196352C492F8600FF8CDF /* AuthTargetType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthTargetType.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -530,6 +532,14 @@
path = ViewModel;
sourceTree = "<group>";
};
784824F52C6E1C6800FE07A0 /* ServiceProtocol */ = {
isa = PBXGroup;
children = (
784824F62C6E1C9900FE07A0 /* AuthServiceProtocol.swift */,
);
path = ServiceProtocol;
sourceTree = "<group>";
};
789196392C49697F00FF8CDF /* Auth */ = {
isa = PBXGroup;
children = (
Expand Down Expand Up @@ -1064,6 +1074,7 @@
DD865B652C3920F600C351A2 /* Onboarding */ = {
isa = PBXGroup;
children = (
784824F52C6E1C6800FE07A0 /* ServiceProtocol */,
782B40762C3E389F008B0CA7 /* Welcome */,
DDFA50782C4693BD000A62E2 /* Profile */,
78AED1322C3D9514000AD80A /* Nickname */,
Expand Down Expand Up @@ -1866,6 +1877,7 @@
789196342C486F6B00FF8CDF /* KeychainAccessible.swift in Sources */,
DE254AB02C31195B00A4015E /* NSAttributedString+.swift in Sources */,
DD43937B2C412F4500EC1799 /* CreateMeetingViewController.swift in Sources */,
784824F72C6E1C9900FE07A0 /* AuthServiceProtocol.swift in Sources */,
DD86266C2C4606A300E4F980 /* SetReadyInfoViewController.swift in Sources */,
DE8247FD2C36E7C7000601BC /* MoyaLoggingPlugin.swift in Sources */,
DECB845C2C4442490022A003 /* FindPlaceViewController.swift in Sources */,
Expand Down
86 changes: 42 additions & 44 deletions KkuMulKum/Network/Service/AuthService.swift
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,22 @@
// Created by 이지훈 on 7/14/24.
//
import Foundation

import Moya

protocol AuthServiceType {
func saveAccessToken(_ token: String) -> Bool
func saveRefreshToken(_ token: String) -> Bool
func getAccessToken() -> String?
func getRefreshToken() -> String?
func clearTokens() -> Bool
func performRequest<T: ResponseModelType>(_ target: AuthTargetType) async throws -> T
enum NetworkErrorMapper {
static func mapErrorResponse(_ error: ErrorResponse) -> NetworkError {
switch error.code {
case 40080:
return .invalidImageFormat
case 40081:
return .imageSizeExceeded
case 40420:
return .userNotFound
default:
return .apiError(code: error.code, message: error.message)
}
}
}

class AuthService: AuthServiceType {
Expand All @@ -26,30 +33,6 @@ class AuthService: AuthServiceType {
self.provider = provider
}

func saveAccessToken(_ token: String) -> Bool {
keychainService.accessToken = token
return keychainService.accessToken == token
}

func saveRefreshToken(_ token: String) -> Bool {
keychainService.refreshToken = token
return keychainService.refreshToken == token
}

func getAccessToken() -> String? {
return keychainService.accessToken
}

func getRefreshToken() -> String? {
return keychainService.refreshToken
}

func clearTokens() -> Bool {
keychainService.accessToken = nil
keychainService.refreshToken = nil
return keychainService.accessToken == nil && keychainService.refreshToken == nil
}

func performRequest<T: ResponseModelType>(_ target: AuthTargetType) async throws -> T {
return try await withCheckedThrowingContinuation { continuation in
provider.request(target) { result in
Expand All @@ -61,7 +44,8 @@ class AuthService: AuthServiceType {
do {
let decodedResponse = try JSONDecoder().decode(ResponseBodyDTO<T>.self, from: response.data)
guard decodedResponse.success else {
throw decodedResponse.error.map(self.mapErrorResponse) ?? NetworkError.unknownError("Unknown error occurred")
throw decodedResponse.error.map(NetworkErrorMapper.mapErrorResponse) ??
NetworkError.unknownError("Unknown error occurred")
}
guard let data = decodedResponse.data else {
if T.self == EmptyModel.self {
Expand All @@ -78,21 +62,35 @@ class AuthService: AuthServiceType {
case .failure(let error):
continuation.resume(throwing: NetworkError.networkError(error))
}

}
}
}
}


extension AuthService {
func saveAccessToken(_ token: String) -> Bool {
keychainService.accessToken = token
return keychainService.accessToken == token
}

private func mapErrorResponse(_ error: ErrorResponse) -> NetworkError {
switch error.code {
case 40080:
return .invalidImageFormat
case 40081:
return .imageSizeExceeded
case 40420:
return .userNotFound
default:
return .apiError(code: error.code, message: error.message)
}
func saveRefreshToken(_ token: String) -> Bool {
keychainService.refreshToken = token
return keychainService.refreshToken == token
}

func getAccessToken() -> String? {
return keychainService.accessToken
}

func getRefreshToken() -> String? {
return keychainService.refreshToken
}

func clearTokens() -> Bool {
keychainService.accessToken = nil
keychainService.refreshToken = nil
return keychainService.accessToken == nil && keychainService.refreshToken == nil
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
//
// AuthServiceType.swift
// KkuMulKum
//
// Created by 이지훈 on 8/15/24.
//

import Foundation

protocol AuthServiceType {
func saveAccessToken(_ token: String) -> Bool
func saveRefreshToken(_ token: String) -> Bool
func getAccessToken() -> String?
func getRefreshToken() -> String?
func clearTokens() -> Bool
func performRequest<T: ResponseModelType>(_ target: AuthTargetType) async throws -> T
}

0 comments on commit 3382226

Please sign in to comment.