mirror of
https://github.com/kean/Pulse.git
synced 2026-05-30 21:07:33 +00:00
50 lines
1.6 KiB
Swift
50 lines
1.6 KiB
Swift
//
|
|
// MoyaIntegration.swift
|
|
// Pulse
|
|
//
|
|
// Created by Bagus andinata on 21/08/21.
|
|
// Copyright © 2021 kean. All rights reserved.
|
|
//
|
|
|
|
import Foundation
|
|
import Moya
|
|
import Alamofire
|
|
import PulseLogHandler
|
|
|
|
// MARK: - EXAMPLE PROVIDER WITH LOGGER
|
|
let ExampleProvider: MoyaProvider<ExampleEndpoints> = {
|
|
let logger: NetworkLogger = NetworkLogger()
|
|
let eventMonitors: [EventMonitor] = [NetworkLoggerEventMonitor(logger: logger)]
|
|
let session = Alamofire.Session(eventMonitors: eventMonitors)
|
|
return MoyaProvider<ExampleEndpoints>(session: session)
|
|
}()
|
|
|
|
// MARK: - LOGGER EVENT
|
|
|
|
struct NetworkLoggerEventMonitor: EventMonitor {
|
|
let logger: NetworkLogger
|
|
|
|
func request(_ request: Request, didCreateTask task: URLSessionTask) {
|
|
logger.logTaskCreated(task)
|
|
}
|
|
|
|
func urlSession(_ session: URLSession, dataTask: URLSessionDataTask, didReceive data: Data) {
|
|
logger.logDataTask(dataTask, didReceive: data)
|
|
|
|
guard let response = dataTask.response else { return }
|
|
logger.logDataTask(dataTask, didReceive: response)
|
|
}
|
|
|
|
func urlSession(_ session: URLSession, task: URLSessionTask, didFinishCollecting metrics: URLSessionTaskMetrics) {
|
|
logger.logTask(task, didFinishCollecting: metrics)
|
|
}
|
|
|
|
func urlSession(_ session: URLSession, task: URLSessionTask, didCompleteWithError error: Error?) {
|
|
logger.logTask(task, didCompleteWithError: error)
|
|
}
|
|
|
|
func urlSession(_ session: URLSession, dataTask: URLSessionDataTask, willCacheResponse proposedResponse: CachedURLResponse) {
|
|
logger.logDataTask(dataTask, didReceive: proposedResponse.response)
|
|
}
|
|
}
|