Emcee
32 строки · 1.0 Кб
1import Dispatch
2import DistWorkerModels
3import Foundation
4import EmceeLogging
5import RequestSender
6import RESTInterfaces
7import RESTMethods
8import RESTServer
9import QueueCommunication
10import WorkerAlivenessProvider
11
12public final class ToggleWorkersSharingEndpoint: RESTEndpoint {
13private let autoupdatingWorkerPermissionProvider: AutoupdatingWorkerPermissionProvider
14
15public let path: RESTPath = RESTMethod.toggleWorkersSharing
16public let requestIndicatesActivity = false
17
18public init(autoupdatingWorkerPermissionProvider: AutoupdatingWorkerPermissionProvider) {
19self.autoupdatingWorkerPermissionProvider = autoupdatingWorkerPermissionProvider
20}
21
22public func handle(payload: ToggleWorkersSharingPayload) throws -> VoidPayload {
23switch payload.status {
24case .disabled:
25autoupdatingWorkerPermissionProvider.stopUpdatingAndRestoreDefaultConfig()
26case .enabled:
27autoupdatingWorkerPermissionProvider.startUpdating()
28}
29
30return VoidPayload()
31}
32}
33