idfa 업데이트 추가

This commit is contained in:
Yu Sung 2024-02-27 01:10:32 +09:00
parent 68ac0a4e76
commit 91504bbda9
5 changed files with 47 additions and 1 deletions

View File

@ -114,6 +114,7 @@ struct HomeView: View {
}
.onAppear {
pushTokenUpdate()
viewModel.fetchAndUpdateIdfa()
viewModel.getMemberInfo()
viewModel.getEventPopup()
viewModel.addAllPlaybackTracking()

View File

@ -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

View File

@ -0,0 +1,12 @@
//
// IdfaUpdateRequest.swift
// SodaLive
//
// Created by klaus on 2/26/24.
//
import Foundation
struct IdfaUpdateRequest: Encodable {
let adid: String
}

View File

@ -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)
}
}

View File

@ -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))
}
}