idfa 업데이트 추가
This commit is contained in:
		| @@ -114,6 +114,7 @@ struct HomeView: View { | ||||
|                 } | ||||
|                 .onAppear { | ||||
|                     pushTokenUpdate() | ||||
|                     viewModel.fetchAndUpdateIdfa() | ||||
|                     viewModel.getMemberInfo() | ||||
|                     viewModel.getEventPopup() | ||||
|                     viewModel.addAllPlaybackTracking() | ||||
|   | ||||
| @@ -8,6 +8,9 @@ | ||||
| import Foundation | ||||
| import Combine | ||||
|  | ||||
| import AppTrackingTransparency | ||||
| import AdSupport | ||||
|  | ||||
| final class HomeViewModel: ObservableObject { | ||||
|      | ||||
|     private var subscription = Set<AnyCancellable>() | ||||
| @@ -37,6 +40,25 @@ final class HomeViewModel: ObservableObject { | ||||
|             .store(in: &subscription) | ||||
|     } | ||||
|      | ||||
|     func fetchAndUpdateIdfa() { | ||||
|         ATTrackingManager.requestTrackingAuthorization { [unowned self] status in | ||||
|             if status == .authorized { | ||||
|                 let idfa = ASIdentifierManager.shared().advertisingIdentifier.uuidString | ||||
|                 self.userRepository.updateIdfa(request: IdfaUpdateRequest(adid: idfa)) | ||||
|                     .sink { result in | ||||
|                         switch result { | ||||
|                         case .finished: | ||||
|                             DEBUG_LOG("finish") | ||||
|                         case .failure(let error): | ||||
|                             ERROR_LOG(error.localizedDescription) | ||||
|                         } | ||||
|                     } receiveValue: { _ in | ||||
|                     } | ||||
|                     .store(in: &self.subscription) | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|      | ||||
|     func getMemberInfo() { | ||||
|         userRepository.getMemberInfo() | ||||
|             .sink { result in | ||||
|   | ||||
							
								
								
									
										12
									
								
								SodaLive/Sources/User/IdfaUpdateRequest.swift
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								SodaLive/Sources/User/IdfaUpdateRequest.swift
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,12 @@ | ||||
| // | ||||
| //  IdfaUpdateRequest.swift | ||||
| //  SodaLive | ||||
| // | ||||
| //  Created by klaus on 2/26/24. | ||||
| // | ||||
|  | ||||
| import Foundation | ||||
|  | ||||
| struct IdfaUpdateRequest: Encodable { | ||||
|     let adid: String | ||||
| } | ||||
| @@ -30,6 +30,7 @@ enum UserApi { | ||||
|     case getChangeNicknamePrice | ||||
|     case checkNickname(nickname: String) | ||||
|     case changeNickname(request: ProfileUpdateRequest) | ||||
|     case updateIdfa(request: IdfaUpdateRequest) | ||||
| } | ||||
|  | ||||
| extension UserApi: TargetType { | ||||
| @@ -98,6 +99,9 @@ extension UserApi: TargetType { | ||||
|              | ||||
|         case .changeNickname: | ||||
|             return "/member/change/nickname" | ||||
|              | ||||
|         case .updateIdfa: | ||||
|             return "/member/adid/update" | ||||
|         } | ||||
|     } | ||||
|      | ||||
| @@ -110,7 +114,7 @@ extension UserApi: TargetType { | ||||
|         case .searchUser, .getMypage, .getMemberInfo, .getMyProfile, .getChangeNicknamePrice, .checkNickname: | ||||
|             return .get | ||||
|              | ||||
|         case .updatePushToken, .profileUpdate, .changeNickname: | ||||
|         case .updatePushToken, .profileUpdate, .changeNickname, .updateIdfa: | ||||
|             return .put | ||||
|         } | ||||
|     } | ||||
| @@ -167,6 +171,9 @@ extension UserApi: TargetType { | ||||
|              | ||||
|         case .changeNickname(let request): | ||||
|             return .requestJSONEncodable(request) | ||||
|              | ||||
|         case .updateIdfa(let request): | ||||
|             return .requestJSONEncodable(request) | ||||
|         } | ||||
|     } | ||||
|      | ||||
|   | ||||
| @@ -108,4 +108,8 @@ final class UserRepository { | ||||
|     func changeNickname(request: ProfileUpdateRequest) -> AnyPublisher<Response, MoyaError> { | ||||
|         return api.requestPublisher(.changeNickname(request: request)) | ||||
|     } | ||||
|      | ||||
|     func updateIdfa(request: IdfaUpdateRequest) -> AnyPublisher<Response, MoyaError> { | ||||
|         return api.requestPublisher(.updateIdfa(request: request)) | ||||
|     } | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Yu Sung
					Yu Sung