temporary (I hope) rollback to Hearst-DD/ObjectMapper

This commit is contained in:
Ivan Smolin 2016-10-12 11:27:34 +03:00
parent 286fe1a38c
commit effcc01b27
6 changed files with 25 additions and 63 deletions

View File

@ -1,5 +1,5 @@
github "CocoaLumberjack/CocoaLumberjack" ~> 3.0.0
github "ReactiveX/RxSwift" "3.0.0-beta.1"
github "Hearst-DD/ObjectMapper" ~> 2.1
github "Alamofire/Alamofire" ~> 4.0.0
github "RxSwiftCommunity/RxAlamofire" "3.0.0-beta.1"
github "petropavel13/Convertible" "1.1.0"
github "RxSwiftCommunity/RxAlamofire" "3.0.0-beta.1"

View File

@ -1,6 +1,5 @@
github "Alamofire/Alamofire" "4.0.1"
github "CocoaLumberjack/CocoaLumberjack" "3.0.0"
github "petropavel13/Reflection" "0.15.0"
github "Hearst-DD/ObjectMapper" "2.1.0"
github "ReactiveX/RxSwift" "3.0.0-beta.1"
github "petropavel13/Convertible" "1.1.0"
github "RxSwiftCommunity/RxAlamofire" "3.0.0-beta.1"

View File

@ -1,12 +1,12 @@
Pod::Spec.new do |s|
s.name = "LeadKit"
s.version = "0.2.1"
s.version = "0.2.2"
s.summary = "iOS framework with a bunch of tools for rapid development"
s.homepage = "https://github.com/TouchInstinct/LeadKit"
s.license = "Apache License, Version 2.0"
s.author = "Touch Instinct"
s.platform = :ios, "9.0"
s.source = { :git => "https://github.com/TouchInstinct/LeadKit.git" }
s.source = { :git => "https://github.com/TouchInstinct/LeadKit.git", :tag => s.version }
s.source_files = "LeadKit/LeadKit/**/*.swift"
s.dependency "CocoaLumberjack/Swift", '~> 3.0.0'
@ -14,5 +14,5 @@ Pod::Spec.new do |s|
s.dependency "RxCocoa", '3.0.0-beta.1'
s.dependency "Alamofire", '~> 4.0.0'
s.dependency "RxAlamofire", '3.0.0-beta.1'
s.dependency "Convertible", '~> 1.1.0'
s.dependency "ObjectMapper", '~> 2.1'
end

View File

@ -13,10 +13,7 @@
780D23461DA416F80084620D /* CGContext+Initializers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 780D23451DA416F80084620D /* CGContext+Initializers.swift */; };
7837F60F1CBCF5C0000D74C1 /* EstimatedViewHeightProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7837F60E1CBCF5C0000D74C1 /* EstimatedViewHeightProtocol.swift */; };
786D78E81D53C378006B2CEA /* AlamofireRequest+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 786D78E71D53C378006B2CEA /* AlamofireRequest+Extensions.swift */; };
786D78EA1D53C43E006B2CEA /* RequestError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 786D78E91D53C43E006B2CEA /* RequestError.swift */; };
786D78EC1D53C46E006B2CEA /* AlamofireManager+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 786D78EB1D53C46E006B2CEA /* AlamofireManager+Extensions.swift */; };
786FFEB71DA7F604008F28A7 /* Convertible.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 786FFEB51DA7F604008F28A7 /* Convertible.framework */; };
786FFEB81DA7F604008F28A7 /* Reflection.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 786FFEB61DA7F604008F28A7 /* Reflection.framework */; };
787682FA1CAD40C300532AB3 /* StaticEstimatedViewHeightProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 787682F91CAD40C200532AB3 /* StaticEstimatedViewHeightProtocol.swift */; };
787783631CA03CA0001CDC9B /* IndexPath+ImmutableIndexPath.swift in Sources */ = {isa = PBXBuildFile; fileRef = 787783621CA03CA0001CDC9B /* IndexPath+ImmutableIndexPath.swift */; };
787783671CA04D4A001CDC9B /* String+SizeCalculation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 787783661CA04D4A001CDC9B /* String+SizeCalculation.swift */; };
@ -36,6 +33,7 @@
78B0FC7D1C6B2BE200358B64 /* LogFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 78B0FC7C1C6B2BE200358B64 /* LogFormatter.swift */; };
78B0FC7F1C6B2C4D00358B64 /* Log.swift in Sources */ = {isa = PBXBuildFile; fileRef = 78B0FC7E1C6B2C4D00358B64 /* Log.swift */; };
78B0FC811C6B2CD500358B64 /* App.swift in Sources */ = {isa = PBXBuildFile; fileRef = 78B0FC801C6B2CD500358B64 /* App.swift */; };
78B891941DAE192B001CA8B4 /* ObjectMapper.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 78B891931DAE192B001CA8B4 /* ObjectMapper.framework */; };
78C36F7E1D801E3E00E7EBEA /* Double+Rounding.swift in Sources */ = {isa = PBXBuildFile; fileRef = 78C36F7D1D801E3E00E7EBEA /* Double+Rounding.swift */; };
78C36F811D8021DD00E7EBEA /* UIColor+Hex.swift in Sources */ = {isa = PBXBuildFile; fileRef = 78C36F801D8021DD00E7EBEA /* UIColor+Hex.swift */; };
78CFEE2E1C5C456B00F50370 /* LeadKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 78CFEE2D1C5C456B00F50370 /* LeadKit.h */; settings = {ATTRIBUTES = (Public, ); }; };
@ -73,10 +71,7 @@
780D23451DA416F80084620D /* CGContext+Initializers.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "CGContext+Initializers.swift"; sourceTree = "<group>"; };
7837F60E1CBCF5C0000D74C1 /* EstimatedViewHeightProtocol.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EstimatedViewHeightProtocol.swift; sourceTree = "<group>"; };
786D78E71D53C378006B2CEA /* AlamofireRequest+Extensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "AlamofireRequest+Extensions.swift"; sourceTree = "<group>"; };
786D78E91D53C43E006B2CEA /* RequestError.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RequestError.swift; sourceTree = "<group>"; };
786D78EB1D53C46E006B2CEA /* AlamofireManager+Extensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "AlamofireManager+Extensions.swift"; sourceTree = "<group>"; };
786FFEB51DA7F604008F28A7 /* Convertible.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Convertible.framework; path = ../../../Carthage/Build/iOS/Convertible.framework; sourceTree = "<group>"; };
786FFEB61DA7F604008F28A7 /* Reflection.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Reflection.framework; path = ../../../Carthage/Build/iOS/Reflection.framework; sourceTree = "<group>"; };
787682F91CAD40C200532AB3 /* StaticEstimatedViewHeightProtocol.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StaticEstimatedViewHeightProtocol.swift; sourceTree = "<group>"; };
787783621CA03CA0001CDC9B /* IndexPath+ImmutableIndexPath.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "IndexPath+ImmutableIndexPath.swift"; sourceTree = "<group>"; };
787783661CA04D4A001CDC9B /* String+SizeCalculation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "String+SizeCalculation.swift"; sourceTree = "<group>"; };
@ -96,6 +91,7 @@
78B0FC7C1C6B2BE200358B64 /* LogFormatter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LogFormatter.swift; sourceTree = "<group>"; };
78B0FC7E1C6B2C4D00358B64 /* Log.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Log.swift; sourceTree = "<group>"; };
78B0FC801C6B2CD500358B64 /* App.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = App.swift; sourceTree = "<group>"; };
78B891931DAE192B001CA8B4 /* ObjectMapper.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ObjectMapper.framework; path = ../../../Carthage/Build/iOS/ObjectMapper.framework; sourceTree = "<group>"; };
78C36F7D1D801E3E00E7EBEA /* Double+Rounding.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Double+Rounding.swift"; sourceTree = "<group>"; };
78C36F801D8021DD00E7EBEA /* UIColor+Hex.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIColor+Hex.swift"; sourceTree = "<group>"; };
78CFEE2A1C5C456B00F50370 /* LeadKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = LeadKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
@ -124,12 +120,11 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
78B891941DAE192B001CA8B4 /* ObjectMapper.framework in Frameworks */,
78B0365F1DA624C10021D5CC /* CocoaLumberjack.framework in Frameworks */,
78B036631DA624C10021D5CC /* RxSwift.framework in Frameworks */,
78B0365E1DA624C10021D5CC /* Alamofire.framework in Frameworks */,
786FFEB81DA7F604008F28A7 /* Reflection.framework in Frameworks */,
78B036621DA624C10021D5CC /* RxCocoa.framework in Frameworks */,
786FFEB71DA7F604008F28A7 /* Convertible.framework in Frameworks */,
78B036611DA624C10021D5CC /* RxAlamofire.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
@ -153,8 +148,7 @@
78B0365B1DA624C10021D5CC /* RxAlamofire.framework */,
78B0365C1DA624C10021D5CC /* RxCocoa.framework */,
78B0365D1DA624C10021D5CC /* RxSwift.framework */,
786FFEB51DA7F604008F28A7 /* Convertible.framework */,
786FFEB61DA7F604008F28A7 /* Reflection.framework */,
78B891931DAE192B001CA8B4 /* ObjectMapper.framework */,
);
path = Frameworks;
sourceTree = "<group>";
@ -162,7 +156,6 @@
78011A651D47AF3000EA16A2 /* Enums */ = {
isa = PBXGroup;
children = (
786D78E91D53C43E006B2CEA /* RequestError.swift */,
);
path = Enums;
sourceTree = "<group>";
@ -540,9 +533,8 @@
"$(SRCROOT)/../Carthage/Build/iOS/RxSwift.framework",
"$(SRCROOT)/../Carthage/Build/iOS/RxCocoa.framework",
"$(SRCROOT)/../Carthage/Build/iOS/Alamofire.framework",
"$(SRCROOT)/../Carthage/Build/iOS/ObjectMapper.framework",
"$(SRCROOT)/../Carthage/Build/iOS/RxAlamofire.framework",
"$(SRCROOT)/../Carthage/Build/iOS/Reflection.framework",
"$(SRCROOT)/../Carthage/Build/iOS/Convertible.framework",
);
name = "Carthage copy-frameworks";
outputPaths = (
@ -573,7 +565,6 @@
786D78EC1D53C46E006B2CEA /* AlamofireManager+Extensions.swift in Sources */,
78B0FC811C6B2CD500358B64 /* App.swift in Sources */,
78B036491DA562C30021D5CC /* CGImage+Template.swift in Sources */,
786D78EA1D53C43E006B2CEA /* RequestError.swift in Sources */,
780D23461DA416F80084620D /* CGContext+Initializers.swift in Sources */,
95B39A861D9D51250057BD54 /* String+Localization.swift in Sources */,
78C36F7E1D801E3E00E7EBEA /* Double+Rounding.swift in Sources */,

View File

@ -1,22 +0,0 @@
//
// RequestError.swift
// LeadKit
//
// Created by Ivan Smolin on 04/08/16.
// Copyright © 2016 Touch Instinct. All rights reserved.
//
/**
enum which describes type of api request error
- Network: network error
- JSONSerialization: JSON serialization error
- ObjectSerialization: object mapping error
*/
public enum RequestError: Error {
case network(error: Error)
case jsonSerialization(error: Error)
case mapping(error: Error)
}

View File

@ -8,9 +8,15 @@
import Alamofire
import RxSwift
import ObjectMapper
import RxAlamofire
import struct RxCocoa.Reactive
import Convertible
public enum ApiResponseMappingError: Error {
case incorrectValueType(message: String)
}
public extension Reactive where Base: DataRequest {
@ -19,28 +25,16 @@ public extension Reactive where Base: DataRequest {
- returns: Observable with HTTP URL Response and target object
*/
func apiResponse<T: Convertible>(convertibleOptions: [ConvertibleOption] = []) -> Observable<(HTTPURLResponse, T)> {
let mapperSerializer = DataResponseSerializer<T> { request, response, data, error in
if let err = error {
return .failure(RequestError.network(error: err))
}
func apiResponse<T: ImmutableMappable>() -> Observable<(HTTPURLResponse, T)> {
return responseJSON().map { resp, value in
if let json = value as? [String: Any] {
return (resp, try T(map: Map(mappingType: .fromJSON, JSON: json)))
} else {
let failureReason = "Value has incorrect type: \(type(of: value)), expected: [String: Any]"
let jsonResponseSerializer = DataRequest.jsonResponseSerializer()
let result = jsonResponseSerializer.serializeResponse(request, response, data, error)
switch result {
case .success(let value):
do {
return .success(try T.initializeWithJson(JsonValue(object: value), options: convertibleOptions))
} catch let err {
return .failure(RequestError.mapping(error: err))
}
case .failure(let error):
return .failure(RequestError.jsonSerialization(error: error))
throw ApiResponseMappingError.incorrectValueType(message: failureReason)
}
}
return responseResult(responseSerializer: mapperSerializer)
}
}