재생 수 업데이트 로직 추가
This commit is contained in:
		| @@ -13,7 +13,7 @@ struct AddAllPlaybackTrackingRequest: Encodable { | ||||
| } | ||||
|  | ||||
| struct PlaybackTrackingData: Encodable { | ||||
|     let audioContentId: Int | ||||
|     let contentId: Int | ||||
|     let playDateTime: String | ||||
|     let isPreview: Bool | ||||
| } | ||||
|   | ||||
| @@ -114,6 +114,7 @@ struct HomeView: View { | ||||
|                     pushTokenUpdate() | ||||
|                     viewModel.getMemberInfo() | ||||
|                     viewModel.getEventPopup() | ||||
|                     viewModel.addAllPlaybackTracking() | ||||
|                 } | ||||
|                  | ||||
|                 if appState.isShowPlayer { | ||||
|   | ||||
| @@ -14,6 +14,8 @@ final class HomeViewModel: ObservableObject { | ||||
|      | ||||
|     private let userRepository = UserRepository() | ||||
|     private let eventRepository = EventRepository() | ||||
|     private let contentRepository = ContentRepository() | ||||
|     private let playbackTrackingRepository = PlaybackTrackingRepository() | ||||
|      | ||||
|     enum CurrentTab: String { | ||||
|         case content, live, explorer, message, mypage | ||||
| @@ -92,4 +94,39 @@ final class HomeViewModel: ObservableObject { | ||||
|             } | ||||
|             .store(in: &subscription) | ||||
|     } | ||||
|      | ||||
|     func addAllPlaybackTracking() { | ||||
|         let playbackTrackingList = playbackTrackingRepository.getAllPlaybackTracking() | ||||
|         let trackingDataList = playbackTrackingList | ||||
|             .filter { | ||||
|                 return $0.endPosition != nil | ||||
|             } | ||||
|             .filter { ($0.endPosition! - $0.startPosition) >= 10 } | ||||
|             .map { | ||||
|                 PlaybackTrackingData(contentId: $0.audioContentId, playDateTime: $0.playDateTime, isPreview: $0.isPreview) | ||||
|             } | ||||
|          | ||||
|         contentRepository.addAllPlaybackTracking(request: AddAllPlaybackTrackingRequest(trackingDataList: trackingDataList)) | ||||
|             .sink { result in | ||||
|                 switch result { | ||||
|                 case .finished: | ||||
|                     DEBUG_LOG("finish") | ||||
|                 case .failure(let error): | ||||
|                     ERROR_LOG(error.localizedDescription) | ||||
|                 } | ||||
|             } receiveValue: { [unowned self] response in | ||||
|                 let responseData = response.data | ||||
|                  | ||||
|                 do { | ||||
|                     let jsonDecoder = JSONDecoder() | ||||
|                     let decoded = try jsonDecoder.decode(ApiResponseWithoutData.self, from: responseData) | ||||
|                      | ||||
|                     if decoded.success { | ||||
|                         self.playbackTrackingRepository.removeAllPlaybackTracking() | ||||
|                     } | ||||
|                 } catch { | ||||
|                 } | ||||
|             } | ||||
|             .store(in: &subscription) | ||||
|     } | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Yu Sung
					Yu Sung