Last active
July 29, 2018 21:18
-
-
Save andreyoshev/f578b9a9220da6e552768db6f4567d72 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
func createRequest(request: Request) -> Observable<NewRequestEvent> { | |
return Observable<NewRequestEvent>.create { observer in | |
RequestRemoteService.shared().createRequest(session: ProfileService.shared().currentSession, request: request, result: { request, code in | |
guard let resultRequest = request else { | |
var requestEvent = NewRequestEvent() | |
if code != nil, let event = NewRequestEvent.Event(rawValue: code!) { | |
requestEvent.event = event | |
} else { | |
requestEvent.event = .retryEvent | |
} | |
observer.onNext(requestEvent) | |
observer.onCompleted() | |
return | |
} | |
var requestEvent = NewRequestEvent() | |
requestEvent.request = resultRequest | |
requestEvent.event = .createdEvent | |
observer.onNext(requestEvent) | |
observer.onCompleted() | |
}) | |
return Disposables.create() | |
} | |
} | |
func createRequest(session: String, request: Request, result: @escaping (_ response: Request?, _ code: Int?) -> Void) { | |
Alamofire | |
.request(Config.connectiusApiBaseUrl + "/profile/my/requests", method: .post, parameters: request.dictionary, headers: [SESSION_HEADER:session]) | |
.validate(statusCode: [200]) | |
.responseData { response in | |
self.prepareResponse(rawResponse: response, code: response.response?.statusCode, callBack: result) | |
} | |
} | |
struct NewRequestEvent { | |
var request: Request? | |
var event: Event? | |
enum Event: Int { | |
case createdEvent = 200 | |
case fewParamsEvent = 400 | |
case invalidParamsEvent = 500 | |
case retryEvent | |
func toLocalizedString () -> String { | |
switch self { | |
case .fewParamsEvent: | |
return "NewRequestEvent.fewParamsEvent.text".localized() | |
case .invalidParamsEvent: | |
return "NewRequestEvent.invalidParamsEvent.text".localized() | |
case .retryEvent: | |
return "NewRequestEvent.retryEvent.text".localized() | |
default: | |
return "" | |
} | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment