Files
sailing-analytics/SAPTracker/QRCodeManager.swift
T
Guy Saldanha 6c0510e177 - added checking of QR code
- grouped files into MVC
2014-10-22 17:30:37 +02:00

80 lines
2.3 KiB
Swift

//
// QRCodeManager.swift
// SAPTracker
//
// Created by computing on 22/10/14.
// Copyright (c) 2014 com.sap.sailing. All rights reserved.
//
import Foundation
class QRCodeManager {
struct Keys {
static let leaderBoard = "leaderboard"
static let raceColumn = "raceColumn"
static let fleet = "fleet"
static let competitor = "competitor"
static let mark = "mark"
static let from = "from"
static let to = "to"
}
var server: String?
var leaderBoard: String?
var raceColumn: String?
var fleet: String?
var competitor: String?
var mark: String?
var from: Int?
var to: Int?
class var sharedManager: QRCodeManager {
struct Singleton {
static let sharedQRCodeManager = QRCodeManager()
}
return Singleton.sharedQRCodeManager
}
// MARK: - methods
func parseString(urlString: String) -> Bool {
let url = NSURL(string: urlString)
if (url == nil || url!.scheme == nil || url!.host == nil) {
return false
}
server = url!.scheme! + "://" + url!.host!
if ((url!.port) != nil) {
server! += ":" + url!.port!.stringValue
}
let queryString = url!.query
if (queryString == nil) {
return false
}
let urlComponents = queryString!.componentsSeparatedByString("&")
var queryStringDictionary = [String:String]()
for keyValuePair in urlComponents
{
let pairComponents = keyValuePair.componentsSeparatedByString("=")
let key = pairComponents[0]
let value = pairComponents[1]
queryStringDictionary[key] = value
}
leaderBoard = queryStringDictionary[QRCodeManager.Keys.leaderBoard]
raceColumn = queryStringDictionary[QRCodeManager.Keys.raceColumn]
fleet = queryStringDictionary[QRCodeManager.Keys.fleet]
competitor = queryStringDictionary[QRCodeManager.Keys.competitor]
mark = queryStringDictionary[QRCodeManager.Keys.mark]
from = queryStringDictionary[QRCodeManager.Keys.from]?.toInt()
to = queryStringDictionary[QRCodeManager.Keys.to]?.toInt()
// TODO: make sure minimum values set
return true
}
}