Advertisement
Guest User

Untitled

a guest
Jul 23rd, 2019
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 2.16 KB | None | 0 0
  1. extension APIEndpoint {
  2.    
  3.     @discardableResult
  4.     public static func getChartData(symbol: String, resolution: String, fromDate: Date, toDate: Date, success: RequestSuccess<BarData>? = nil, error: RequestError? = nil) -> Request? {
  5.         var url = PRICE_HISTORY_URL + "/TChart/history?symbol=\(symbol)&resolution=\(resolution)"
  6.        
  7.         let fromInterval = lround(fromDate.timeIntervalSince1970)
  8.         let toInterval = lround(toDate.timeIntervalSince1970)
  9.        
  10.         url = url + "&from=\(fromInterval)&to=\(toInterval)"
  11.        
  12.         return get(url, success: success, error: error, parser: { (response: AnyObject) -> BarData in
  13.             // Parse response
  14.             guard let responseData = response as? [String: AnyObject] else {
  15.                 throw ParserError.invalidResponseData
  16.             }
  17.             print(responseData)
  18.             return BarData(data: responseData)
  19.         })
  20.     }
  21.  
  22. }
  23.  
  24.  
  25. //=============
  26. import Foundation
  27.  
  28. public class BarData {
  29.    
  30.     var bars: [AnyObject] = [AnyObject]()
  31.    
  32.     init(data: [AnyHashable: Any]) {
  33.         guard let closeData = data["c"] as? [Double],
  34.             let highData = data["h"] as? [Double],
  35.             let lowData = data["l"] as? [Double],
  36.             let openData = data["o"] as? [Double],
  37.             let timeData = data["t"] as? [Int],
  38.             let volData = data["v"] as? [Double] else {
  39.                 return
  40.         }
  41.        
  42.         bars = [AnyObject]()
  43.         for i in 0..<closeData.count {
  44.             var barData = [AnyObject]()
  45.             if timeData.count > i && openData.count > i && highData.count > i && lowData.count > i && volData.count > i {
  46.                 barData.append(timeData[i] as AnyObject)
  47.                 barData.append(Float(openData[i]) as AnyObject)
  48.                 barData.append(Float(highData[i]) as AnyObject)
  49.                 barData.append(Float(lowData[i]) as AnyObject)
  50.                 barData.append(Float(closeData[i]) as AnyObject)
  51.                 barData.append(Float(volData[i]) as AnyObject)
  52.                
  53.                 bars.append(barData as AnyObject)
  54.             }
  55.            
  56.         }
  57.     }
  58.    
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement