Emcee

Форк
0
/
BucketResultRegistrar.swift 
35 строк · 1.2 Кб
1
import BucketQueue
2
import Foundation
3
import QueueModels
4
import RESTInterfaces
5
import RESTMethods
6
import RESTServer
7

8
public final class BucketResultRegistrar: PayloadSignatureVerifyingRESTEndpoint {
9
    public typealias PayloadType = BucketResultPayload
10
    public typealias ResponseType = BucketResultAcceptResponse
11

12
    private let bucketResultAcceptor: BucketResultAcceptor
13
    public let expectedPayloadSignature: PayloadSignature
14
    public let path: RESTPath = RESTMethod.bucketResult
15
    public let requestIndicatesActivity = true
16

17
    public init(
18
        bucketResultAcceptor: BucketResultAcceptor,
19
        expectedPayloadSignature: PayloadSignature
20
    ) {
21
        self.bucketResultAcceptor = bucketResultAcceptor
22
        self.expectedPayloadSignature = expectedPayloadSignature
23
    }
24

25
    public func handle(verifiedPayload: BucketResultPayload) throws -> BucketResultAcceptResponse {
26
        let acceptResult = try bucketResultAcceptor.accept(
27
            bucketId: verifiedPayload.bucketId,
28
            bucketResult: verifiedPayload.bucketResult,
29
            workerId: verifiedPayload.workerId
30
        )
31
        return .bucketResultAccepted(
32
            bucketId: acceptResult.dequeuedBucket.enqueuedBucket.bucket.bucketId
33
        )
34
    }
35
}
36

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.