@@ -16,10 +16,10 @@ class AuthorizationService {
16 self.apiClient = apiClient
16 self.apiClient = apiClient
19+ /// Check if phone number is registered and send verification code to that number.
19 func authenticate(withPhone phoneNumber: String,
20 func authenticate(withPhone phoneNumber: String,
20 completion: @escaping (Result<Bool, Error>) -> Void) {
21 completion: @escaping (Result<Bool, Error>) -> Void) {
21 let resolver = AuthResolver(phoneNumber: phoneNumber)
22 let resolver = AuthResolver(phoneNumber: phoneNumber)
23 let request = ApiRequest(resolver: resolver, httpMethod: .post)
23 let request = ApiRequest(resolver: resolver, httpMethod: .post)
25 apiClient.load(request: request.request) { (result) in
25 apiClient.load(request: request.request) { (result) in
@@ -42,11 +42,54 @@ class AuthorizationService {
45+ /// Verify login of **already existing user** with phone number and verification code.
45− func phonecode() {
46+ func phonecode(phoneNumber: String,
48+ completion: @escaping (Result<User, Error>) -> Void) {
46− //let resolver = PhoneCodeResolver()
49+ let resolver = PhoneCodeResolver(phoneNumber: phoneNumber, code: code)
50+ let request = ApiRequest(resolver: resolver, httpMethod: .post)
52+ apiClient.load(request: request.request) { result in
54+ case .failure(let err):
55+ completion(.failure(err))
56+ case .success(let data):
58+ let unwrappedData = data as? Data,
59+ let decodedData = resolver.targetClass().fromJSONToSelf(data: unwrappedData) as? User
61+ completion(.failure(ServerError.decodeError))
65+ completion(.success(decodedData))
71+ /// Register new user with a given name, phone number and verification code.
49− func register() {
72+ func register(name: String,
74+ phoneNumber: String, completion: @escaping (Result<User, Error>) -> Void) {
50− //let resolver = RegistrationResolver()
75+ let resolver = RegistrationResolver(name: name, code: code, phoneNumber: phoneNumber)
76+ let request = ApiRequest(resolver: resolver, httpMethod: .post)
78+ apiClient.load(request: request.request) { result in
80+ case .failure(let err):
81+ completion(.failure(err))
82+ case .success(let data):
84+ let unwrappedData = data as? Data,
85+ let decodedData = resolver.targetClass().fromJSONToSelf(data: unwrappedData) as? User
87+ completion(.failure(ServerError.decodeError))
91+ completion(.success(decodedData))