mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-09-19 20:25:31 +00:00
Added leaderboard start tracking and auto course request
This commit is contained in:
@@ -109,14 +109,33 @@ class TrainingController: NSObject {
|
||||
|
||||
requestManager.postCompetitorCreateAndAdd(regatta: regatta, boatClassName: boatClassName, sailID: sailID, nationality: nationality, success: { competitorCreateAndAddData in
|
||||
collector.competitorCreateAndAddData = competitorCreateAndAddData
|
||||
self.competitorCreateAndAddSuccess(collector: collector, success: success)
|
||||
self.competitorCreateAndAddSuccess(collector: collector, success: success, failure: failure)
|
||||
}) { (error, message) in
|
||||
self.competitorCreateAndAddFailure(error: error, failure: failure)
|
||||
}
|
||||
}
|
||||
|
||||
fileprivate func competitorCreateAndAddSuccess(collector: CreateTrainingData, success: (_ createTrainingData: CreateTrainingData) -> Void) {
|
||||
success(collector)
|
||||
fileprivate func competitorCreateAndAddSuccess(
|
||||
collector: CreateTrainingData,
|
||||
success: @escaping (_ createTrainingData: CreateTrainingData) -> Void,
|
||||
failure: @escaping (_ error: Error) -> Void)
|
||||
{
|
||||
let leaderboardName = collector.createEventData?.leaderboardName ?? ""
|
||||
let raceName = "R1"
|
||||
let fleetName = "Default"
|
||||
requestManager.postLeaderboardSetTrackingTime(leaderboardName: leaderboardName, raceName: raceName, fleetName: fleetName, success: {
|
||||
self.requestManager.postLeaderboardStartTracking(leaderboardName: leaderboardName, raceName: raceName, fleetName: fleetName, success: {
|
||||
self.requestManager.postLeaderboardAutoCourse(leaderboardName: leaderboardName, raceName: raceName, fleetName: fleetName, success: {
|
||||
success(collector)
|
||||
}) { (error, message) in
|
||||
failure(error)
|
||||
}
|
||||
}) { (error, message) in
|
||||
failure(error)
|
||||
}
|
||||
}) { (error, message) in
|
||||
failure(error)
|
||||
}
|
||||
}
|
||||
|
||||
fileprivate func competitorCreateAndAddFailure(error: Error, failure: (_ error: Error) -> Void) {
|
||||
|
||||
@@ -126,9 +126,9 @@ class TrainingRequestManager: NSObject {
|
||||
failure(error, stringForError(error))
|
||||
}
|
||||
|
||||
// MARK: - SetTrackingTimes
|
||||
// MARK: - LeaderboardSetTrackingTime
|
||||
|
||||
func postSetTrackingTimes(
|
||||
func postLeaderboardSetTrackingTime(
|
||||
leaderboardName: String,
|
||||
raceName: String,
|
||||
fleetName: String,
|
||||
@@ -139,20 +139,79 @@ class TrainingRequestManager: NSObject {
|
||||
let encodedRaceName = raceName.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) ?? ""
|
||||
let encodedFleetName = fleetName.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) ?? ""
|
||||
let urlString = "\(basePathString)/leaderboards/\(encodedLeaderboardName)/settrackingtimes?race_column=\(encodedRaceName)&fleet=\(encodedFleetName)&startoftrackingasmillis=\(millisSince1970())"
|
||||
manager.responseSerializer = AFJSONResponseSerializer()
|
||||
manager.post(urlString, parameters: nil, success: { (requestOperation, responseObject) in
|
||||
self.postSetTrackingTimesSuccess(responseObject: responseObject, success: success)
|
||||
self.postLeaderboardSetTrackingTimeSuccess(responseObject: responseObject, success: success)
|
||||
}) { (requestOperation, error) in
|
||||
self.postSetTrackingTimesFailure(error: error, failure: failure)
|
||||
self.postLeaderboardSetTrackingTimeFailure(error: error, failure: failure)
|
||||
}
|
||||
}
|
||||
|
||||
fileprivate func postSetTrackingTimesSuccess(responseObject: Any?, success: @escaping () -> Void) {
|
||||
fileprivate func postLeaderboardSetTrackingTimeSuccess(responseObject: Any?, success: @escaping () -> Void) {
|
||||
logInfo(name: "\(#function)", info: responseObjectToString(responseObject: responseObject))
|
||||
success()
|
||||
}
|
||||
|
||||
fileprivate func postSetTrackingTimesFailure(error: Error, failure: @escaping (_ error: Error, _ message: String?) -> Void) {
|
||||
fileprivate func postLeaderboardSetTrackingTimeFailure(error: Error, failure: @escaping (_ error: Error, _ message: String?) -> Void) {
|
||||
logError(name: "\(#function)", error: error)
|
||||
failure(error, stringForError(error))
|
||||
}
|
||||
|
||||
// MARK: - LeaderboardStartTracking
|
||||
|
||||
func postLeaderboardStartTracking(
|
||||
leaderboardName: String,
|
||||
raceName: String,
|
||||
fleetName: String,
|
||||
success: @escaping () -> Void,
|
||||
failure: @escaping (_ error: Error, _ message: String?) -> Void)
|
||||
{
|
||||
let encodedLeaderboardName = leaderboardName.addingPercentEncoding(withAllowedCharacters: .urlPathAllowed) ?? ""
|
||||
let encodedRaceName = raceName.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) ?? ""
|
||||
let encodedFleetName = fleetName.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) ?? ""
|
||||
let urlString = "\(basePathString)/leaderboards/\(encodedLeaderboardName)/starttracking?race_column=\(encodedRaceName)&fleet=\(encodedFleetName)"
|
||||
manager.post(urlString, parameters: nil, success: { (requestOperation, responseObject) in
|
||||
self.postLeaderboardStartTrackingSuccess(responseObject: responseObject, success: success)
|
||||
}) { (requestOperation, error) in
|
||||
self.postLeaderboardStartTrackingFailure(error: error, failure: failure)
|
||||
}
|
||||
}
|
||||
|
||||
fileprivate func postLeaderboardStartTrackingSuccess(responseObject: Any?, success: @escaping () -> Void) {
|
||||
logInfo(name: "\(#function)", info: responseObjectToString(responseObject: responseObject))
|
||||
success()
|
||||
}
|
||||
|
||||
fileprivate func postLeaderboardStartTrackingFailure(error: Error, failure: @escaping (_ error: Error, _ message: String?) -> Void) {
|
||||
logError(name: "\(#function)", error: error)
|
||||
failure(error, stringForError(error))
|
||||
}
|
||||
|
||||
// MARK: - LeaderboardAutoCourse
|
||||
|
||||
func postLeaderboardAutoCourse(
|
||||
leaderboardName: String,
|
||||
raceName: String,
|
||||
fleetName: String,
|
||||
success: @escaping () -> Void,
|
||||
failure: @escaping (_ error: Error, _ message: String?) -> Void)
|
||||
{
|
||||
let encodedLeaderboardName = leaderboardName.addingPercentEncoding(withAllowedCharacters: .urlPathAllowed) ?? ""
|
||||
let encodedRaceName = raceName.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) ?? ""
|
||||
let encodedFleetName = fleetName.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) ?? ""
|
||||
let urlString = "\(basePathString)/leaderboards/\(encodedLeaderboardName)/autocourse?race_column=\(encodedRaceName)&fleet=\(encodedFleetName)"
|
||||
manager.post(urlString, parameters: nil, success: { (requestOperation, responseObject) in
|
||||
self.postLeaderboardAutoCourseSuccess(responseObject: responseObject, success: success)
|
||||
}) { (requestOperation, error) in
|
||||
self.postLeaderboardAutoCourseFailure(error: error, failure: failure)
|
||||
}
|
||||
}
|
||||
|
||||
fileprivate func postLeaderboardAutoCourseSuccess(responseObject: Any?, success: @escaping () -> Void) {
|
||||
logInfo(name: "\(#function)", info: responseObjectToString(responseObject: responseObject))
|
||||
success()
|
||||
}
|
||||
|
||||
fileprivate func postLeaderboardAutoCourseFailure(error: Error, failure: @escaping (_ error: Error, _ message: String?) -> Void) {
|
||||
logError(name: "\(#function)", error: error)
|
||||
failure(error, stringForError(error))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user