mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-04 03:13:49 +00:00
80 lines
2.3 KiB
Swift
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
|
|
}
|
|
}
|