diff --git a/Carthage/Build/iOS/Alamofire.framework/Alamofire b/Carthage/Build/iOS/Alamofire.framework/Alamofire index 03eada3..6c772b4 100755 Binary files a/Carthage/Build/iOS/Alamofire.framework/Alamofire and b/Carthage/Build/iOS/Alamofire.framework/Alamofire differ diff --git a/Carthage/Build/iOS/Alamofire.framework/Headers/Alamofire-Swift.h b/Carthage/Build/iOS/Alamofire.framework/Headers/Alamofire-Swift.h index f28534e..3fc1564 100644 --- a/Carthage/Build/iOS/Alamofire.framework/Headers/Alamofire-Swift.h +++ b/Carthage/Build/iOS/Alamofire.framework/Headers/Alamofire-Swift.h @@ -1,4 +1,4 @@ -// Generated by Apple Swift version 3.0 (swiftlang-800.0.46.2 clang-800.0.38) +// Generated by Apple Swift version 3.0.1 (swiftlang-800.0.58.6 clang-800.0.42.1) #pragma clang diagnostic push #if defined(__has_include) && __has_include() @@ -63,6 +63,11 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); #else # define SWIFT_METHOD_FAMILY(X) #endif +#if defined(__has_attribute) && __has_attribute(noescape) +# define SWIFT_NOESCAPE __attribute__((noescape)) +#else +# define SWIFT_NOESCAPE +#endif #if !defined(SWIFT_CLASS_EXTRA) # define SWIFT_CLASS_EXTRA #endif @@ -220,7 +225,7 @@ SWIFT_CLASS("_TtC9Alamofire15SessionDelegate") completionHandler \endcode. */ -@property (nonatomic, copy) void (^ _Nullable sessionDidReceiveChallengeWithCompletion)(NSURLSession * _Nonnull, NSURLAuthenticationChallenge * _Nonnull, void (^ _Nonnull)(NSURLSessionAuthChallengeDisposition, NSURLCredential * _Nullable)); +@property (nonatomic, copy) void (^ _Nullable sessionDidReceiveChallengeWithCompletion)(NSURLSession * _Nonnull, NSURLAuthenticationChallenge * _Nonnull, SWIFT_NOESCAPE void (^ _Nonnull)(NSURLSessionAuthChallengeDisposition, NSURLCredential * _Nullable)); /** Overrides default behavior for URLSessionDelegate method \code urlSessionDidFinishEvents(forBackgroundURLSession:) @@ -241,7 +246,7 @@ SWIFT_CLASS("_TtC9Alamofire15SessionDelegate") completionHandler \endcode. */ -@property (nonatomic, copy) void (^ _Nullable taskWillPerformHTTPRedirectionWithCompletion)(NSURLSession * _Nonnull, NSURLSessionTask * _Nonnull, NSHTTPURLResponse * _Nonnull, NSURLRequest * _Nonnull, void (^ _Nonnull)(NSURLRequest * _Nullable)); +@property (nonatomic, copy) void (^ _Nullable taskWillPerformHTTPRedirectionWithCompletion)(NSURLSession * _Nonnull, NSURLSessionTask * _Nonnull, NSHTTPURLResponse * _Nonnull, NSURLRequest * _Nonnull, SWIFT_NOESCAPE void (^ _Nonnull)(NSURLRequest * _Nullable)); /** Overrides all behavior for URLSessionTaskDelegate method \code urlSession(_:task:didReceive:completionHandler:) @@ -250,7 +255,7 @@ SWIFT_CLASS("_TtC9Alamofire15SessionDelegate") completionHandler \endcode. */ -@property (nonatomic, copy) void (^ _Nullable taskDidReceiveChallengeWithCompletion)(NSURLSession * _Nonnull, NSURLSessionTask * _Nonnull, NSURLAuthenticationChallenge * _Nonnull, void (^ _Nonnull)(NSURLSessionAuthChallengeDisposition, NSURLCredential * _Nullable)); +@property (nonatomic, copy) void (^ _Nullable taskDidReceiveChallengeWithCompletion)(NSURLSession * _Nonnull, NSURLSessionTask * _Nonnull, NSURLAuthenticationChallenge * _Nonnull, SWIFT_NOESCAPE void (^ _Nonnull)(NSURLSessionAuthChallengeDisposition, NSURLCredential * _Nullable)); /** Overrides default behavior for URLSessionTaskDelegate method \code urlSession(_:task:needNewBodyStream:) @@ -265,7 +270,7 @@ SWIFT_CLASS("_TtC9Alamofire15SessionDelegate") completionHandler \endcode. */ -@property (nonatomic, copy) void (^ _Nullable taskNeedNewBodyStreamWithCompletion)(NSURLSession * _Nonnull, NSURLSessionTask * _Nonnull, void (^ _Nonnull)(NSInputStream * _Nullable)); +@property (nonatomic, copy) void (^ _Nullable taskNeedNewBodyStreamWithCompletion)(NSURLSession * _Nonnull, NSURLSessionTask * _Nonnull, SWIFT_NOESCAPE void (^ _Nonnull)(NSInputStream * _Nullable)); /** Overrides default behavior for URLSessionTaskDelegate method \code urlSession(_:task:didSendBodyData:totalBytesSent:totalBytesExpectedToSend:) @@ -292,7 +297,7 @@ SWIFT_CLASS("_TtC9Alamofire15SessionDelegate") completionHandler \endcode. */ -@property (nonatomic, copy) void (^ _Nullable dataTaskDidReceiveResponseWithCompletion)(NSURLSession * _Nonnull, NSURLSessionDataTask * _Nonnull, NSURLResponse * _Nonnull, void (^ _Nonnull)(NSURLSessionResponseDisposition)); +@property (nonatomic, copy) void (^ _Nullable dataTaskDidReceiveResponseWithCompletion)(NSURLSession * _Nonnull, NSURLSessionDataTask * _Nonnull, NSURLResponse * _Nonnull, SWIFT_NOESCAPE void (^ _Nonnull)(NSURLSessionResponseDisposition)); /** Overrides default behavior for URLSessionDataDelegate method \code urlSession(_:dataTask:didBecome:) @@ -319,7 +324,7 @@ SWIFT_CLASS("_TtC9Alamofire15SessionDelegate") completionHandler \endcode. */ -@property (nonatomic, copy) void (^ _Nullable dataTaskWillCacheResponseWithCompletion)(NSURLSession * _Nonnull, NSURLSessionDataTask * _Nonnull, NSCachedURLResponse * _Nonnull, void (^ _Nonnull)(NSCachedURLResponse * _Nullable)); +@property (nonatomic, copy) void (^ _Nullable dataTaskWillCacheResponseWithCompletion)(NSURLSession * _Nonnull, NSURLSessionDataTask * _Nonnull, NSCachedURLResponse * _Nonnull, SWIFT_NOESCAPE void (^ _Nonnull)(NSCachedURLResponse * _Nullable)); /** Overrides default behavior for URLSessionDownloadDelegate method \code urlSession(_:downloadTask:didFinishDownloadingTo:) diff --git a/Carthage/Build/iOS/Alamofire.framework/Info.plist b/Carthage/Build/iOS/Alamofire.framework/Info.plist index 4a1a3d3..873f55d 100644 Binary files a/Carthage/Build/iOS/Alamofire.framework/Info.plist and b/Carthage/Build/iOS/Alamofire.framework/Info.plist differ diff --git a/Carthage/Build/iOS/Alamofire.framework/Modules/Alamofire.swiftmodule/arm.swiftdoc b/Carthage/Build/iOS/Alamofire.framework/Modules/Alamofire.swiftmodule/arm.swiftdoc index 5bb191c..7eeb484 100644 Binary files a/Carthage/Build/iOS/Alamofire.framework/Modules/Alamofire.swiftmodule/arm.swiftdoc and b/Carthage/Build/iOS/Alamofire.framework/Modules/Alamofire.swiftmodule/arm.swiftdoc differ diff --git a/Carthage/Build/iOS/Alamofire.framework/Modules/Alamofire.swiftmodule/arm.swiftmodule b/Carthage/Build/iOS/Alamofire.framework/Modules/Alamofire.swiftmodule/arm.swiftmodule index 77f4d8a..7f7f508 100644 Binary files a/Carthage/Build/iOS/Alamofire.framework/Modules/Alamofire.swiftmodule/arm.swiftmodule and b/Carthage/Build/iOS/Alamofire.framework/Modules/Alamofire.swiftmodule/arm.swiftmodule differ diff --git a/Carthage/Build/iOS/Alamofire.framework/Modules/Alamofire.swiftmodule/arm64.swiftdoc b/Carthage/Build/iOS/Alamofire.framework/Modules/Alamofire.swiftmodule/arm64.swiftdoc index 2d28cc2..50bc48d 100644 Binary files a/Carthage/Build/iOS/Alamofire.framework/Modules/Alamofire.swiftmodule/arm64.swiftdoc and b/Carthage/Build/iOS/Alamofire.framework/Modules/Alamofire.swiftmodule/arm64.swiftdoc differ diff --git a/Carthage/Build/iOS/Alamofire.framework/Modules/Alamofire.swiftmodule/arm64.swiftmodule b/Carthage/Build/iOS/Alamofire.framework/Modules/Alamofire.swiftmodule/arm64.swiftmodule index 0cb6476..bc12c36 100644 Binary files a/Carthage/Build/iOS/Alamofire.framework/Modules/Alamofire.swiftmodule/arm64.swiftmodule and b/Carthage/Build/iOS/Alamofire.framework/Modules/Alamofire.swiftmodule/arm64.swiftmodule differ diff --git a/Carthage/Build/iOS/Alamofire.framework/Modules/Alamofire.swiftmodule/i386.swiftdoc b/Carthage/Build/iOS/Alamofire.framework/Modules/Alamofire.swiftmodule/i386.swiftdoc index bbba821..21aa5ae 100644 Binary files a/Carthage/Build/iOS/Alamofire.framework/Modules/Alamofire.swiftmodule/i386.swiftdoc and b/Carthage/Build/iOS/Alamofire.framework/Modules/Alamofire.swiftmodule/i386.swiftdoc differ diff --git a/Carthage/Build/iOS/Alamofire.framework/Modules/Alamofire.swiftmodule/i386.swiftmodule b/Carthage/Build/iOS/Alamofire.framework/Modules/Alamofire.swiftmodule/i386.swiftmodule index 4da4664..28023f9 100644 Binary files a/Carthage/Build/iOS/Alamofire.framework/Modules/Alamofire.swiftmodule/i386.swiftmodule and b/Carthage/Build/iOS/Alamofire.framework/Modules/Alamofire.swiftmodule/i386.swiftmodule differ diff --git a/Carthage/Build/iOS/Alamofire.framework/Modules/Alamofire.swiftmodule/x86_64.swiftdoc b/Carthage/Build/iOS/Alamofire.framework/Modules/Alamofire.swiftmodule/x86_64.swiftdoc index 18988fd..0e51cb3 100644 Binary files a/Carthage/Build/iOS/Alamofire.framework/Modules/Alamofire.swiftmodule/x86_64.swiftdoc and b/Carthage/Build/iOS/Alamofire.framework/Modules/Alamofire.swiftmodule/x86_64.swiftdoc differ diff --git a/Carthage/Build/iOS/Alamofire.framework/Modules/Alamofire.swiftmodule/x86_64.swiftmodule b/Carthage/Build/iOS/Alamofire.framework/Modules/Alamofire.swiftmodule/x86_64.swiftmodule index f6c198b..21beccf 100644 Binary files a/Carthage/Build/iOS/Alamofire.framework/Modules/Alamofire.swiftmodule/x86_64.swiftmodule and b/Carthage/Build/iOS/Alamofire.framework/Modules/Alamofire.swiftmodule/x86_64.swiftmodule differ diff --git a/Carthage/Build/iOS/ObjectMapper.framework/Headers/ObjectMapper-Swift.h b/Carthage/Build/iOS/ObjectMapper.framework/Headers/ObjectMapper-Swift.h index 61a199d..edb321d 100644 --- a/Carthage/Build/iOS/ObjectMapper.framework/Headers/ObjectMapper-Swift.h +++ b/Carthage/Build/iOS/ObjectMapper.framework/Headers/ObjectMapper-Swift.h @@ -1,4 +1,4 @@ -// Generated by Apple Swift version 3.0 (swiftlang-800.0.46.2 clang-800.0.38) +// Generated by Apple Swift version 3.0.1 (swiftlang-800.0.58.6 clang-800.0.42.1) #pragma clang diagnostic push #if defined(__has_include) && __has_include() @@ -63,6 +63,11 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); #else # define SWIFT_METHOD_FAMILY(X) #endif +#if defined(__has_attribute) && __has_attribute(noescape) +# define SWIFT_NOESCAPE __attribute__((noescape)) +#else +# define SWIFT_NOESCAPE +#endif #if !defined(SWIFT_CLASS_EXTRA) # define SWIFT_CLASS_EXTRA #endif diff --git a/Carthage/Build/iOS/ObjectMapper.framework/Info.plist b/Carthage/Build/iOS/ObjectMapper.framework/Info.plist index 3605e5a..d5cec36 100644 Binary files a/Carthage/Build/iOS/ObjectMapper.framework/Info.plist and b/Carthage/Build/iOS/ObjectMapper.framework/Info.plist differ diff --git a/Carthage/Build/iOS/ObjectMapper.framework/Modules/ObjectMapper.swiftmodule/arm.swiftdoc b/Carthage/Build/iOS/ObjectMapper.framework/Modules/ObjectMapper.swiftmodule/arm.swiftdoc index 21ae26a..1063b4c 100644 Binary files a/Carthage/Build/iOS/ObjectMapper.framework/Modules/ObjectMapper.swiftmodule/arm.swiftdoc and b/Carthage/Build/iOS/ObjectMapper.framework/Modules/ObjectMapper.swiftmodule/arm.swiftdoc differ diff --git a/Carthage/Build/iOS/ObjectMapper.framework/Modules/ObjectMapper.swiftmodule/arm.swiftmodule b/Carthage/Build/iOS/ObjectMapper.framework/Modules/ObjectMapper.swiftmodule/arm.swiftmodule index df22078..ee9d66e 100644 Binary files a/Carthage/Build/iOS/ObjectMapper.framework/Modules/ObjectMapper.swiftmodule/arm.swiftmodule and b/Carthage/Build/iOS/ObjectMapper.framework/Modules/ObjectMapper.swiftmodule/arm.swiftmodule differ diff --git a/Carthage/Build/iOS/ObjectMapper.framework/Modules/ObjectMapper.swiftmodule/arm64.swiftdoc b/Carthage/Build/iOS/ObjectMapper.framework/Modules/ObjectMapper.swiftmodule/arm64.swiftdoc index f29d791..589e9bf 100644 Binary files a/Carthage/Build/iOS/ObjectMapper.framework/Modules/ObjectMapper.swiftmodule/arm64.swiftdoc and b/Carthage/Build/iOS/ObjectMapper.framework/Modules/ObjectMapper.swiftmodule/arm64.swiftdoc differ diff --git a/Carthage/Build/iOS/ObjectMapper.framework/Modules/ObjectMapper.swiftmodule/arm64.swiftmodule b/Carthage/Build/iOS/ObjectMapper.framework/Modules/ObjectMapper.swiftmodule/arm64.swiftmodule index 1b7e303..ad2e739 100644 Binary files a/Carthage/Build/iOS/ObjectMapper.framework/Modules/ObjectMapper.swiftmodule/arm64.swiftmodule and b/Carthage/Build/iOS/ObjectMapper.framework/Modules/ObjectMapper.swiftmodule/arm64.swiftmodule differ diff --git a/Carthage/Build/iOS/ObjectMapper.framework/Modules/ObjectMapper.swiftmodule/i386.swiftdoc b/Carthage/Build/iOS/ObjectMapper.framework/Modules/ObjectMapper.swiftmodule/i386.swiftdoc index 9ca994d..efd55fb 100644 Binary files a/Carthage/Build/iOS/ObjectMapper.framework/Modules/ObjectMapper.swiftmodule/i386.swiftdoc and b/Carthage/Build/iOS/ObjectMapper.framework/Modules/ObjectMapper.swiftmodule/i386.swiftdoc differ diff --git a/Carthage/Build/iOS/ObjectMapper.framework/Modules/ObjectMapper.swiftmodule/i386.swiftmodule b/Carthage/Build/iOS/ObjectMapper.framework/Modules/ObjectMapper.swiftmodule/i386.swiftmodule index f79d93b..3d77ca1 100644 Binary files a/Carthage/Build/iOS/ObjectMapper.framework/Modules/ObjectMapper.swiftmodule/i386.swiftmodule and b/Carthage/Build/iOS/ObjectMapper.framework/Modules/ObjectMapper.swiftmodule/i386.swiftmodule differ diff --git a/Carthage/Build/iOS/ObjectMapper.framework/Modules/ObjectMapper.swiftmodule/x86_64.swiftdoc b/Carthage/Build/iOS/ObjectMapper.framework/Modules/ObjectMapper.swiftmodule/x86_64.swiftdoc index 316c44e..0708952 100644 Binary files a/Carthage/Build/iOS/ObjectMapper.framework/Modules/ObjectMapper.swiftmodule/x86_64.swiftdoc and b/Carthage/Build/iOS/ObjectMapper.framework/Modules/ObjectMapper.swiftmodule/x86_64.swiftdoc differ diff --git a/Carthage/Build/iOS/ObjectMapper.framework/Modules/ObjectMapper.swiftmodule/x86_64.swiftmodule b/Carthage/Build/iOS/ObjectMapper.framework/Modules/ObjectMapper.swiftmodule/x86_64.swiftmodule index e073f4b..a880e26 100644 Binary files a/Carthage/Build/iOS/ObjectMapper.framework/Modules/ObjectMapper.swiftmodule/x86_64.swiftmodule and b/Carthage/Build/iOS/ObjectMapper.framework/Modules/ObjectMapper.swiftmodule/x86_64.swiftmodule differ diff --git a/Carthage/Build/iOS/ObjectMapper.framework/ObjectMapper b/Carthage/Build/iOS/ObjectMapper.framework/ObjectMapper index 7757d15..1b86039 100755 Binary files a/Carthage/Build/iOS/ObjectMapper.framework/ObjectMapper and b/Carthage/Build/iOS/ObjectMapper.framework/ObjectMapper differ diff --git a/Carthage/Build/iOS/RxAlamofire.framework/Headers/RxAlamofire-Swift.h b/Carthage/Build/iOS/RxAlamofire.framework/Headers/RxAlamofire-Swift.h index 61a199d..edb321d 100644 --- a/Carthage/Build/iOS/RxAlamofire.framework/Headers/RxAlamofire-Swift.h +++ b/Carthage/Build/iOS/RxAlamofire.framework/Headers/RxAlamofire-Swift.h @@ -1,4 +1,4 @@ -// Generated by Apple Swift version 3.0 (swiftlang-800.0.46.2 clang-800.0.38) +// Generated by Apple Swift version 3.0.1 (swiftlang-800.0.58.6 clang-800.0.42.1) #pragma clang diagnostic push #if defined(__has_include) && __has_include() @@ -63,6 +63,11 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); #else # define SWIFT_METHOD_FAMILY(X) #endif +#if defined(__has_attribute) && __has_attribute(noescape) +# define SWIFT_NOESCAPE __attribute__((noescape)) +#else +# define SWIFT_NOESCAPE +#endif #if !defined(SWIFT_CLASS_EXTRA) # define SWIFT_CLASS_EXTRA #endif diff --git a/Carthage/Build/iOS/RxAlamofire.framework/Info.plist b/Carthage/Build/iOS/RxAlamofire.framework/Info.plist index f1691f1..506aec9 100644 Binary files a/Carthage/Build/iOS/RxAlamofire.framework/Info.plist and b/Carthage/Build/iOS/RxAlamofire.framework/Info.plist differ diff --git a/Carthage/Build/iOS/RxAlamofire.framework/Modules/RxAlamofire.swiftmodule/arm.swiftdoc b/Carthage/Build/iOS/RxAlamofire.framework/Modules/RxAlamofire.swiftmodule/arm.swiftdoc index 4040733..e18f764 100644 Binary files a/Carthage/Build/iOS/RxAlamofire.framework/Modules/RxAlamofire.swiftmodule/arm.swiftdoc and b/Carthage/Build/iOS/RxAlamofire.framework/Modules/RxAlamofire.swiftmodule/arm.swiftdoc differ diff --git a/Carthage/Build/iOS/RxAlamofire.framework/Modules/RxAlamofire.swiftmodule/arm.swiftmodule b/Carthage/Build/iOS/RxAlamofire.framework/Modules/RxAlamofire.swiftmodule/arm.swiftmodule index 1eb1a23..be639a2 100644 Binary files a/Carthage/Build/iOS/RxAlamofire.framework/Modules/RxAlamofire.swiftmodule/arm.swiftmodule and b/Carthage/Build/iOS/RxAlamofire.framework/Modules/RxAlamofire.swiftmodule/arm.swiftmodule differ diff --git a/Carthage/Build/iOS/RxAlamofire.framework/Modules/RxAlamofire.swiftmodule/arm64.swiftdoc b/Carthage/Build/iOS/RxAlamofire.framework/Modules/RxAlamofire.swiftmodule/arm64.swiftdoc index 77c60db..f3cb5f3 100644 Binary files a/Carthage/Build/iOS/RxAlamofire.framework/Modules/RxAlamofire.swiftmodule/arm64.swiftdoc and b/Carthage/Build/iOS/RxAlamofire.framework/Modules/RxAlamofire.swiftmodule/arm64.swiftdoc differ diff --git a/Carthage/Build/iOS/RxAlamofire.framework/Modules/RxAlamofire.swiftmodule/arm64.swiftmodule b/Carthage/Build/iOS/RxAlamofire.framework/Modules/RxAlamofire.swiftmodule/arm64.swiftmodule index 23ade76..72a8c0f 100644 Binary files a/Carthage/Build/iOS/RxAlamofire.framework/Modules/RxAlamofire.swiftmodule/arm64.swiftmodule and b/Carthage/Build/iOS/RxAlamofire.framework/Modules/RxAlamofire.swiftmodule/arm64.swiftmodule differ diff --git a/Carthage/Build/iOS/RxAlamofire.framework/Modules/RxAlamofire.swiftmodule/i386.swiftdoc b/Carthage/Build/iOS/RxAlamofire.framework/Modules/RxAlamofire.swiftmodule/i386.swiftdoc index 393d919..edc52d5 100644 Binary files a/Carthage/Build/iOS/RxAlamofire.framework/Modules/RxAlamofire.swiftmodule/i386.swiftdoc and b/Carthage/Build/iOS/RxAlamofire.framework/Modules/RxAlamofire.swiftmodule/i386.swiftdoc differ diff --git a/Carthage/Build/iOS/RxAlamofire.framework/Modules/RxAlamofire.swiftmodule/i386.swiftmodule b/Carthage/Build/iOS/RxAlamofire.framework/Modules/RxAlamofire.swiftmodule/i386.swiftmodule index fe8ebf5..f83ae2d 100644 Binary files a/Carthage/Build/iOS/RxAlamofire.framework/Modules/RxAlamofire.swiftmodule/i386.swiftmodule and b/Carthage/Build/iOS/RxAlamofire.framework/Modules/RxAlamofire.swiftmodule/i386.swiftmodule differ diff --git a/Carthage/Build/iOS/RxAlamofire.framework/Modules/RxAlamofire.swiftmodule/x86_64.swiftdoc b/Carthage/Build/iOS/RxAlamofire.framework/Modules/RxAlamofire.swiftmodule/x86_64.swiftdoc index 92e6365..c0e6dbd 100644 Binary files a/Carthage/Build/iOS/RxAlamofire.framework/Modules/RxAlamofire.swiftmodule/x86_64.swiftdoc and b/Carthage/Build/iOS/RxAlamofire.framework/Modules/RxAlamofire.swiftmodule/x86_64.swiftdoc differ diff --git a/Carthage/Build/iOS/RxAlamofire.framework/Modules/RxAlamofire.swiftmodule/x86_64.swiftmodule b/Carthage/Build/iOS/RxAlamofire.framework/Modules/RxAlamofire.swiftmodule/x86_64.swiftmodule index fa3cbaa..ff50e6d 100644 Binary files a/Carthage/Build/iOS/RxAlamofire.framework/Modules/RxAlamofire.swiftmodule/x86_64.swiftmodule and b/Carthage/Build/iOS/RxAlamofire.framework/Modules/RxAlamofire.swiftmodule/x86_64.swiftmodule differ diff --git a/Carthage/Build/iOS/RxAlamofire.framework/RxAlamofire b/Carthage/Build/iOS/RxAlamofire.framework/RxAlamofire index 7e0f845..6b15930 100755 Binary files a/Carthage/Build/iOS/RxAlamofire.framework/RxAlamofire and b/Carthage/Build/iOS/RxAlamofire.framework/RxAlamofire differ diff --git a/Carthage/Build/iOS/RxBlocking.framework/Headers/RxBlocking-Swift.h b/Carthage/Build/iOS/RxBlocking.framework/Headers/RxBlocking-Swift.h new file mode 100644 index 0000000..abdf3f4 --- /dev/null +++ b/Carthage/Build/iOS/RxBlocking.framework/Headers/RxBlocking-Swift.h @@ -0,0 +1,127 @@ +// Generated by Apple Swift version 3.0.1 (swiftlang-800.0.58.6 clang-800.0.42.1) +#pragma clang diagnostic push + +#if defined(__has_include) && __has_include() +# include +#endif + +#pragma clang diagnostic ignored "-Wauto-import" +#include +#include +#include +#include + +#if !defined(SWIFT_TYPEDEFS) +# define SWIFT_TYPEDEFS 1 +# if defined(__has_include) && __has_include() +# include +# elif !defined(__cplusplus) || __cplusplus < 201103L +typedef uint_least16_t char16_t; +typedef uint_least32_t char32_t; +# endif +typedef float swift_float2 __attribute__((__ext_vector_type__(2))); +typedef float swift_float3 __attribute__((__ext_vector_type__(3))); +typedef float swift_float4 __attribute__((__ext_vector_type__(4))); +typedef double swift_double2 __attribute__((__ext_vector_type__(2))); +typedef double swift_double3 __attribute__((__ext_vector_type__(3))); +typedef double swift_double4 __attribute__((__ext_vector_type__(4))); +typedef int swift_int2 __attribute__((__ext_vector_type__(2))); +typedef int swift_int3 __attribute__((__ext_vector_type__(3))); +typedef int swift_int4 __attribute__((__ext_vector_type__(4))); +typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2))); +typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3))); +typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); +#endif + +#if !defined(SWIFT_PASTE) +# define SWIFT_PASTE_HELPER(x, y) x##y +# define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y) +#endif +#if !defined(SWIFT_METATYPE) +# define SWIFT_METATYPE(X) Class +#endif +#if !defined(SWIFT_CLASS_PROPERTY) +# if __has_feature(objc_class_property) +# define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__ +# else +# define SWIFT_CLASS_PROPERTY(...) +# endif +#endif + +#if defined(__has_attribute) && __has_attribute(objc_runtime_name) +# define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X))) +#else +# define SWIFT_RUNTIME_NAME(X) +#endif +#if defined(__has_attribute) && __has_attribute(swift_name) +# define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X))) +#else +# define SWIFT_COMPILE_NAME(X) +#endif +#if defined(__has_attribute) && __has_attribute(objc_method_family) +# define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X))) +#else +# define SWIFT_METHOD_FAMILY(X) +#endif +#if defined(__has_attribute) && __has_attribute(noescape) +# define SWIFT_NOESCAPE __attribute__((noescape)) +#else +# define SWIFT_NOESCAPE +#endif +#if !defined(SWIFT_CLASS_EXTRA) +# define SWIFT_CLASS_EXTRA +#endif +#if !defined(SWIFT_PROTOCOL_EXTRA) +# define SWIFT_PROTOCOL_EXTRA +#endif +#if !defined(SWIFT_ENUM_EXTRA) +# define SWIFT_ENUM_EXTRA +#endif +#if !defined(SWIFT_CLASS) +# if defined(__has_attribute) && __has_attribute(objc_subclassing_restricted) +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# else +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# endif +#endif + +#if !defined(SWIFT_PROTOCOL) +# define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +# define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +#endif + +#if !defined(SWIFT_EXTENSION) +# define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__) +#endif + +#if !defined(OBJC_DESIGNATED_INITIALIZER) +# if defined(__has_attribute) && __has_attribute(objc_designated_initializer) +# define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer)) +# else +# define OBJC_DESIGNATED_INITIALIZER +# endif +#endif +#if !defined(SWIFT_ENUM) +# define SWIFT_ENUM(_type, _name) enum _name : _type _name; enum SWIFT_ENUM_EXTRA _name : _type +# if defined(__has_feature) && __has_feature(generalized_swift_name) +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_EXTRA _name : _type +# else +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME) SWIFT_ENUM(_type, _name) +# endif +#endif +#if !defined(SWIFT_UNAVAILABLE) +# define SWIFT_UNAVAILABLE __attribute__((unavailable)) +#endif +#if defined(__has_feature) && __has_feature(modules) +@import Foundation; +#endif + +#pragma clang diagnostic ignored "-Wproperty-attribute-mismatch" +#pragma clang diagnostic ignored "-Wduplicate-method-arg" + +@interface NSThread (SWIFT_EXTENSION(RxBlocking)) +@end + +#pragma clang diagnostic pop diff --git a/Carthage/Build/iOS/RxBlocking.framework/Info.plist b/Carthage/Build/iOS/RxBlocking.framework/Info.plist new file mode 100644 index 0000000..84e31fd Binary files /dev/null and b/Carthage/Build/iOS/RxBlocking.framework/Info.plist differ diff --git a/Carthage/Build/iOS/RxBlocking.framework/Modules/RxBlocking.swiftmodule/arm.swiftdoc b/Carthage/Build/iOS/RxBlocking.framework/Modules/RxBlocking.swiftmodule/arm.swiftdoc new file mode 100644 index 0000000..02c7bbf Binary files /dev/null and b/Carthage/Build/iOS/RxBlocking.framework/Modules/RxBlocking.swiftmodule/arm.swiftdoc differ diff --git a/Carthage/Build/iOS/RxBlocking.framework/Modules/RxBlocking.swiftmodule/arm.swiftmodule b/Carthage/Build/iOS/RxBlocking.framework/Modules/RxBlocking.swiftmodule/arm.swiftmodule new file mode 100644 index 0000000..7ab9b2f Binary files /dev/null and b/Carthage/Build/iOS/RxBlocking.framework/Modules/RxBlocking.swiftmodule/arm.swiftmodule differ diff --git a/Carthage/Build/iOS/RxBlocking.framework/Modules/RxBlocking.swiftmodule/arm64.swiftdoc b/Carthage/Build/iOS/RxBlocking.framework/Modules/RxBlocking.swiftmodule/arm64.swiftdoc new file mode 100644 index 0000000..b57dfd6 Binary files /dev/null and b/Carthage/Build/iOS/RxBlocking.framework/Modules/RxBlocking.swiftmodule/arm64.swiftdoc differ diff --git a/Carthage/Build/iOS/RxBlocking.framework/Modules/RxBlocking.swiftmodule/arm64.swiftmodule b/Carthage/Build/iOS/RxBlocking.framework/Modules/RxBlocking.swiftmodule/arm64.swiftmodule new file mode 100644 index 0000000..4e83fa3 Binary files /dev/null and b/Carthage/Build/iOS/RxBlocking.framework/Modules/RxBlocking.swiftmodule/arm64.swiftmodule differ diff --git a/Carthage/Build/iOS/RxBlocking.framework/Modules/RxBlocking.swiftmodule/i386.swiftdoc b/Carthage/Build/iOS/RxBlocking.framework/Modules/RxBlocking.swiftmodule/i386.swiftdoc new file mode 100644 index 0000000..f21ac72 Binary files /dev/null and b/Carthage/Build/iOS/RxBlocking.framework/Modules/RxBlocking.swiftmodule/i386.swiftdoc differ diff --git a/Carthage/Build/iOS/RxBlocking.framework/Modules/RxBlocking.swiftmodule/i386.swiftmodule b/Carthage/Build/iOS/RxBlocking.framework/Modules/RxBlocking.swiftmodule/i386.swiftmodule new file mode 100644 index 0000000..38f6813 Binary files /dev/null and b/Carthage/Build/iOS/RxBlocking.framework/Modules/RxBlocking.swiftmodule/i386.swiftmodule differ diff --git a/Carthage/Build/iOS/RxBlocking.framework/Modules/RxBlocking.swiftmodule/x86_64.swiftdoc b/Carthage/Build/iOS/RxBlocking.framework/Modules/RxBlocking.swiftmodule/x86_64.swiftdoc new file mode 100644 index 0000000..8d83249 Binary files /dev/null and b/Carthage/Build/iOS/RxBlocking.framework/Modules/RxBlocking.swiftmodule/x86_64.swiftdoc differ diff --git a/Carthage/Build/iOS/RxBlocking.framework/Modules/RxBlocking.swiftmodule/x86_64.swiftmodule b/Carthage/Build/iOS/RxBlocking.framework/Modules/RxBlocking.swiftmodule/x86_64.swiftmodule new file mode 100644 index 0000000..b3e002b Binary files /dev/null and b/Carthage/Build/iOS/RxBlocking.framework/Modules/RxBlocking.swiftmodule/x86_64.swiftmodule differ diff --git a/Carthage/Build/iOS/RxBlocking.framework/Modules/module.modulemap b/Carthage/Build/iOS/RxBlocking.framework/Modules/module.modulemap new file mode 100644 index 0000000..df574bb --- /dev/null +++ b/Carthage/Build/iOS/RxBlocking.framework/Modules/module.modulemap @@ -0,0 +1,3 @@ +framework module RxBlocking { + header "RxBlocking-Swift.h" +} diff --git a/Carthage/Build/iOS/RxBlocking.framework/RxBlocking b/Carthage/Build/iOS/RxBlocking.framework/RxBlocking new file mode 100755 index 0000000..7b26214 Binary files /dev/null and b/Carthage/Build/iOS/RxBlocking.framework/RxBlocking differ diff --git a/Carthage/Build/iOS/RxCocoa.framework/Headers/RxCocoa-Swift.h b/Carthage/Build/iOS/RxCocoa.framework/Headers/RxCocoa-Swift.h index cd782a7..ea7c422 100644 --- a/Carthage/Build/iOS/RxCocoa.framework/Headers/RxCocoa-Swift.h +++ b/Carthage/Build/iOS/RxCocoa.framework/Headers/RxCocoa-Swift.h @@ -1,4 +1,4 @@ -// Generated by Apple Swift version 3.0 (swiftlang-800.0.46.2 clang-800.0.38) +// Generated by Apple Swift version 3.0.1 (swiftlang-800.0.58.6 clang-800.0.42.1) #pragma clang diagnostic push #if defined(__has_include) && __has_include() @@ -63,6 +63,11 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); #else # define SWIFT_METHOD_FAMILY(X) #endif +#if defined(__has_attribute) && __has_attribute(noescape) +# define SWIFT_NOESCAPE __attribute__((noescape)) +#else +# define SWIFT_NOESCAPE +#endif #if !defined(SWIFT_CLASS_EXTRA) # define SWIFT_CLASS_EXTRA #endif diff --git a/Carthage/Build/iOS/RxCocoa.framework/Info.plist b/Carthage/Build/iOS/RxCocoa.framework/Info.plist index 7fa5529..dde9504 100644 Binary files a/Carthage/Build/iOS/RxCocoa.framework/Info.plist and b/Carthage/Build/iOS/RxCocoa.framework/Info.plist differ diff --git a/Carthage/Build/iOS/RxCocoa.framework/Modules/RxCocoa.swiftmodule/arm.swiftdoc b/Carthage/Build/iOS/RxCocoa.framework/Modules/RxCocoa.swiftmodule/arm.swiftdoc index 88a1c86..b8c974e 100644 Binary files a/Carthage/Build/iOS/RxCocoa.framework/Modules/RxCocoa.swiftmodule/arm.swiftdoc and b/Carthage/Build/iOS/RxCocoa.framework/Modules/RxCocoa.swiftmodule/arm.swiftdoc differ diff --git a/Carthage/Build/iOS/RxCocoa.framework/Modules/RxCocoa.swiftmodule/arm.swiftmodule b/Carthage/Build/iOS/RxCocoa.framework/Modules/RxCocoa.swiftmodule/arm.swiftmodule index 82cdeba..89a484b 100644 Binary files a/Carthage/Build/iOS/RxCocoa.framework/Modules/RxCocoa.swiftmodule/arm.swiftmodule and b/Carthage/Build/iOS/RxCocoa.framework/Modules/RxCocoa.swiftmodule/arm.swiftmodule differ diff --git a/Carthage/Build/iOS/RxCocoa.framework/Modules/RxCocoa.swiftmodule/arm64.swiftdoc b/Carthage/Build/iOS/RxCocoa.framework/Modules/RxCocoa.swiftmodule/arm64.swiftdoc index c9326fd..c7b193e 100644 Binary files a/Carthage/Build/iOS/RxCocoa.framework/Modules/RxCocoa.swiftmodule/arm64.swiftdoc and b/Carthage/Build/iOS/RxCocoa.framework/Modules/RxCocoa.swiftmodule/arm64.swiftdoc differ diff --git a/Carthage/Build/iOS/RxCocoa.framework/Modules/RxCocoa.swiftmodule/arm64.swiftmodule b/Carthage/Build/iOS/RxCocoa.framework/Modules/RxCocoa.swiftmodule/arm64.swiftmodule index 9b83563..761c536 100644 Binary files a/Carthage/Build/iOS/RxCocoa.framework/Modules/RxCocoa.swiftmodule/arm64.swiftmodule and b/Carthage/Build/iOS/RxCocoa.framework/Modules/RxCocoa.swiftmodule/arm64.swiftmodule differ diff --git a/Carthage/Build/iOS/RxCocoa.framework/Modules/RxCocoa.swiftmodule/i386.swiftdoc b/Carthage/Build/iOS/RxCocoa.framework/Modules/RxCocoa.swiftmodule/i386.swiftdoc index 7415df9..e428de4 100644 Binary files a/Carthage/Build/iOS/RxCocoa.framework/Modules/RxCocoa.swiftmodule/i386.swiftdoc and b/Carthage/Build/iOS/RxCocoa.framework/Modules/RxCocoa.swiftmodule/i386.swiftdoc differ diff --git a/Carthage/Build/iOS/RxCocoa.framework/Modules/RxCocoa.swiftmodule/i386.swiftmodule b/Carthage/Build/iOS/RxCocoa.framework/Modules/RxCocoa.swiftmodule/i386.swiftmodule index 7983af7..ec5658a 100644 Binary files a/Carthage/Build/iOS/RxCocoa.framework/Modules/RxCocoa.swiftmodule/i386.swiftmodule and b/Carthage/Build/iOS/RxCocoa.framework/Modules/RxCocoa.swiftmodule/i386.swiftmodule differ diff --git a/Carthage/Build/iOS/RxCocoa.framework/Modules/RxCocoa.swiftmodule/x86_64.swiftdoc b/Carthage/Build/iOS/RxCocoa.framework/Modules/RxCocoa.swiftmodule/x86_64.swiftdoc index 8380608..4a1b6d5 100644 Binary files a/Carthage/Build/iOS/RxCocoa.framework/Modules/RxCocoa.swiftmodule/x86_64.swiftdoc and b/Carthage/Build/iOS/RxCocoa.framework/Modules/RxCocoa.swiftmodule/x86_64.swiftdoc differ diff --git a/Carthage/Build/iOS/RxCocoa.framework/Modules/RxCocoa.swiftmodule/x86_64.swiftmodule b/Carthage/Build/iOS/RxCocoa.framework/Modules/RxCocoa.swiftmodule/x86_64.swiftmodule index 237f49e..84757f4 100644 Binary files a/Carthage/Build/iOS/RxCocoa.framework/Modules/RxCocoa.swiftmodule/x86_64.swiftmodule and b/Carthage/Build/iOS/RxCocoa.framework/Modules/RxCocoa.swiftmodule/x86_64.swiftmodule differ diff --git a/Carthage/Build/iOS/RxCocoa.framework/RxCocoa b/Carthage/Build/iOS/RxCocoa.framework/RxCocoa index e1abd3a..b289a8c 100755 Binary files a/Carthage/Build/iOS/RxCocoa.framework/RxCocoa and b/Carthage/Build/iOS/RxCocoa.framework/RxCocoa differ diff --git a/Carthage/Build/iOS/RxSwift.framework/Headers/RxSwift-Swift.h b/Carthage/Build/iOS/RxSwift.framework/Headers/RxSwift-Swift.h index ba62cf4..7418e0d 100644 --- a/Carthage/Build/iOS/RxSwift.framework/Headers/RxSwift-Swift.h +++ b/Carthage/Build/iOS/RxSwift.framework/Headers/RxSwift-Swift.h @@ -1,4 +1,4 @@ -// Generated by Apple Swift version 3.0 (swiftlang-800.0.46.2 clang-800.0.38) +// Generated by Apple Swift version 3.0.1 (swiftlang-800.0.58.6 clang-800.0.42.1) #pragma clang diagnostic push #if defined(__has_include) && __has_include() @@ -63,6 +63,11 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); #else # define SWIFT_METHOD_FAMILY(X) #endif +#if defined(__has_attribute) && __has_attribute(noescape) +# define SWIFT_NOESCAPE __attribute__((noescape)) +#else +# define SWIFT_NOESCAPE +#endif #if !defined(SWIFT_CLASS_EXTRA) # define SWIFT_CLASS_EXTRA #endif @@ -122,7 +127,7 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); @interface NSRecursiveLock (SWIFT_EXTENSION(RxSwift)) -- (void)performLocked:(void (^ _Nonnull)(void))action; +- (void)performLocked:(SWIFT_NOESCAPE void (^ _Nonnull)(void))action; @end diff --git a/Carthage/Build/iOS/RxSwift.framework/Info.plist b/Carthage/Build/iOS/RxSwift.framework/Info.plist index 47faaf6..e7dfdd8 100644 Binary files a/Carthage/Build/iOS/RxSwift.framework/Info.plist and b/Carthage/Build/iOS/RxSwift.framework/Info.plist differ diff --git a/Carthage/Build/iOS/RxSwift.framework/Modules/RxSwift.swiftmodule/arm.swiftdoc b/Carthage/Build/iOS/RxSwift.framework/Modules/RxSwift.swiftmodule/arm.swiftdoc index d94881e..4c38602 100644 Binary files a/Carthage/Build/iOS/RxSwift.framework/Modules/RxSwift.swiftmodule/arm.swiftdoc and b/Carthage/Build/iOS/RxSwift.framework/Modules/RxSwift.swiftmodule/arm.swiftdoc differ diff --git a/Carthage/Build/iOS/RxSwift.framework/Modules/RxSwift.swiftmodule/arm.swiftmodule b/Carthage/Build/iOS/RxSwift.framework/Modules/RxSwift.swiftmodule/arm.swiftmodule index 453d984..0986a95 100644 Binary files a/Carthage/Build/iOS/RxSwift.framework/Modules/RxSwift.swiftmodule/arm.swiftmodule and b/Carthage/Build/iOS/RxSwift.framework/Modules/RxSwift.swiftmodule/arm.swiftmodule differ diff --git a/Carthage/Build/iOS/RxSwift.framework/Modules/RxSwift.swiftmodule/arm64.swiftdoc b/Carthage/Build/iOS/RxSwift.framework/Modules/RxSwift.swiftmodule/arm64.swiftdoc index 25ccc7b..97b2f71 100644 Binary files a/Carthage/Build/iOS/RxSwift.framework/Modules/RxSwift.swiftmodule/arm64.swiftdoc and b/Carthage/Build/iOS/RxSwift.framework/Modules/RxSwift.swiftmodule/arm64.swiftdoc differ diff --git a/Carthage/Build/iOS/RxSwift.framework/Modules/RxSwift.swiftmodule/arm64.swiftmodule b/Carthage/Build/iOS/RxSwift.framework/Modules/RxSwift.swiftmodule/arm64.swiftmodule index 4335aec..309c43b 100644 Binary files a/Carthage/Build/iOS/RxSwift.framework/Modules/RxSwift.swiftmodule/arm64.swiftmodule and b/Carthage/Build/iOS/RxSwift.framework/Modules/RxSwift.swiftmodule/arm64.swiftmodule differ diff --git a/Carthage/Build/iOS/RxSwift.framework/Modules/RxSwift.swiftmodule/i386.swiftdoc b/Carthage/Build/iOS/RxSwift.framework/Modules/RxSwift.swiftmodule/i386.swiftdoc index e0c9c77..2d892c2 100644 Binary files a/Carthage/Build/iOS/RxSwift.framework/Modules/RxSwift.swiftmodule/i386.swiftdoc and b/Carthage/Build/iOS/RxSwift.framework/Modules/RxSwift.swiftmodule/i386.swiftdoc differ diff --git a/Carthage/Build/iOS/RxSwift.framework/Modules/RxSwift.swiftmodule/i386.swiftmodule b/Carthage/Build/iOS/RxSwift.framework/Modules/RxSwift.swiftmodule/i386.swiftmodule index e201fef..a46368d 100644 Binary files a/Carthage/Build/iOS/RxSwift.framework/Modules/RxSwift.swiftmodule/i386.swiftmodule and b/Carthage/Build/iOS/RxSwift.framework/Modules/RxSwift.swiftmodule/i386.swiftmodule differ diff --git a/Carthage/Build/iOS/RxSwift.framework/Modules/RxSwift.swiftmodule/x86_64.swiftdoc b/Carthage/Build/iOS/RxSwift.framework/Modules/RxSwift.swiftmodule/x86_64.swiftdoc index b8035d4..d3170d2 100644 Binary files a/Carthage/Build/iOS/RxSwift.framework/Modules/RxSwift.swiftmodule/x86_64.swiftdoc and b/Carthage/Build/iOS/RxSwift.framework/Modules/RxSwift.swiftmodule/x86_64.swiftdoc differ diff --git a/Carthage/Build/iOS/RxSwift.framework/Modules/RxSwift.swiftmodule/x86_64.swiftmodule b/Carthage/Build/iOS/RxSwift.framework/Modules/RxSwift.swiftmodule/x86_64.swiftmodule index 34820ba..5bd504a 100644 Binary files a/Carthage/Build/iOS/RxSwift.framework/Modules/RxSwift.swiftmodule/x86_64.swiftmodule and b/Carthage/Build/iOS/RxSwift.framework/Modules/RxSwift.swiftmodule/x86_64.swiftmodule differ diff --git a/Carthage/Build/iOS/RxSwift.framework/RxSwift b/Carthage/Build/iOS/RxSwift.framework/RxSwift index eab2884..096bb59 100755 Binary files a/Carthage/Build/iOS/RxSwift.framework/RxSwift and b/Carthage/Build/iOS/RxSwift.framework/RxSwift differ diff --git a/Carthage/Build/iOS/RxTest.framework/Headers/RxTest-Swift.h b/Carthage/Build/iOS/RxTest.framework/Headers/RxTest-Swift.h new file mode 100644 index 0000000..edb321d --- /dev/null +++ b/Carthage/Build/iOS/RxTest.framework/Headers/RxTest-Swift.h @@ -0,0 +1,122 @@ +// Generated by Apple Swift version 3.0.1 (swiftlang-800.0.58.6 clang-800.0.42.1) +#pragma clang diagnostic push + +#if defined(__has_include) && __has_include() +# include +#endif + +#pragma clang diagnostic ignored "-Wauto-import" +#include +#include +#include +#include + +#if !defined(SWIFT_TYPEDEFS) +# define SWIFT_TYPEDEFS 1 +# if defined(__has_include) && __has_include() +# include +# elif !defined(__cplusplus) || __cplusplus < 201103L +typedef uint_least16_t char16_t; +typedef uint_least32_t char32_t; +# endif +typedef float swift_float2 __attribute__((__ext_vector_type__(2))); +typedef float swift_float3 __attribute__((__ext_vector_type__(3))); +typedef float swift_float4 __attribute__((__ext_vector_type__(4))); +typedef double swift_double2 __attribute__((__ext_vector_type__(2))); +typedef double swift_double3 __attribute__((__ext_vector_type__(3))); +typedef double swift_double4 __attribute__((__ext_vector_type__(4))); +typedef int swift_int2 __attribute__((__ext_vector_type__(2))); +typedef int swift_int3 __attribute__((__ext_vector_type__(3))); +typedef int swift_int4 __attribute__((__ext_vector_type__(4))); +typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2))); +typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3))); +typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); +#endif + +#if !defined(SWIFT_PASTE) +# define SWIFT_PASTE_HELPER(x, y) x##y +# define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y) +#endif +#if !defined(SWIFT_METATYPE) +# define SWIFT_METATYPE(X) Class +#endif +#if !defined(SWIFT_CLASS_PROPERTY) +# if __has_feature(objc_class_property) +# define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__ +# else +# define SWIFT_CLASS_PROPERTY(...) +# endif +#endif + +#if defined(__has_attribute) && __has_attribute(objc_runtime_name) +# define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X))) +#else +# define SWIFT_RUNTIME_NAME(X) +#endif +#if defined(__has_attribute) && __has_attribute(swift_name) +# define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X))) +#else +# define SWIFT_COMPILE_NAME(X) +#endif +#if defined(__has_attribute) && __has_attribute(objc_method_family) +# define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X))) +#else +# define SWIFT_METHOD_FAMILY(X) +#endif +#if defined(__has_attribute) && __has_attribute(noescape) +# define SWIFT_NOESCAPE __attribute__((noescape)) +#else +# define SWIFT_NOESCAPE +#endif +#if !defined(SWIFT_CLASS_EXTRA) +# define SWIFT_CLASS_EXTRA +#endif +#if !defined(SWIFT_PROTOCOL_EXTRA) +# define SWIFT_PROTOCOL_EXTRA +#endif +#if !defined(SWIFT_ENUM_EXTRA) +# define SWIFT_ENUM_EXTRA +#endif +#if !defined(SWIFT_CLASS) +# if defined(__has_attribute) && __has_attribute(objc_subclassing_restricted) +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# else +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# endif +#endif + +#if !defined(SWIFT_PROTOCOL) +# define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +# define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +#endif + +#if !defined(SWIFT_EXTENSION) +# define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__) +#endif + +#if !defined(OBJC_DESIGNATED_INITIALIZER) +# if defined(__has_attribute) && __has_attribute(objc_designated_initializer) +# define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer)) +# else +# define OBJC_DESIGNATED_INITIALIZER +# endif +#endif +#if !defined(SWIFT_ENUM) +# define SWIFT_ENUM(_type, _name) enum _name : _type _name; enum SWIFT_ENUM_EXTRA _name : _type +# if defined(__has_feature) && __has_feature(generalized_swift_name) +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_EXTRA _name : _type +# else +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME) SWIFT_ENUM(_type, _name) +# endif +#endif +#if !defined(SWIFT_UNAVAILABLE) +# define SWIFT_UNAVAILABLE __attribute__((unavailable)) +#endif +#if defined(__has_feature) && __has_feature(modules) +#endif + +#pragma clang diagnostic ignored "-Wproperty-attribute-mismatch" +#pragma clang diagnostic ignored "-Wduplicate-method-arg" +#pragma clang diagnostic pop diff --git a/Carthage/Build/iOS/RxTest.framework/Info.plist b/Carthage/Build/iOS/RxTest.framework/Info.plist new file mode 100644 index 0000000..4054e56 Binary files /dev/null and b/Carthage/Build/iOS/RxTest.framework/Info.plist differ diff --git a/Carthage/Build/iOS/RxTest.framework/Modules/RxTest.swiftmodule/arm.swiftdoc b/Carthage/Build/iOS/RxTest.framework/Modules/RxTest.swiftmodule/arm.swiftdoc new file mode 100644 index 0000000..4a8bfe1 Binary files /dev/null and b/Carthage/Build/iOS/RxTest.framework/Modules/RxTest.swiftmodule/arm.swiftdoc differ diff --git a/Carthage/Build/iOS/RxTest.framework/Modules/RxTest.swiftmodule/arm.swiftmodule b/Carthage/Build/iOS/RxTest.framework/Modules/RxTest.swiftmodule/arm.swiftmodule new file mode 100644 index 0000000..bba15f2 Binary files /dev/null and b/Carthage/Build/iOS/RxTest.framework/Modules/RxTest.swiftmodule/arm.swiftmodule differ diff --git a/Carthage/Build/iOS/RxTest.framework/Modules/RxTest.swiftmodule/arm64.swiftdoc b/Carthage/Build/iOS/RxTest.framework/Modules/RxTest.swiftmodule/arm64.swiftdoc new file mode 100644 index 0000000..949edb9 Binary files /dev/null and b/Carthage/Build/iOS/RxTest.framework/Modules/RxTest.swiftmodule/arm64.swiftdoc differ diff --git a/Carthage/Build/iOS/RxTest.framework/Modules/RxTest.swiftmodule/arm64.swiftmodule b/Carthage/Build/iOS/RxTest.framework/Modules/RxTest.swiftmodule/arm64.swiftmodule new file mode 100644 index 0000000..a1a99e4 Binary files /dev/null and b/Carthage/Build/iOS/RxTest.framework/Modules/RxTest.swiftmodule/arm64.swiftmodule differ diff --git a/Carthage/Build/iOS/RxTest.framework/Modules/RxTest.swiftmodule/i386.swiftdoc b/Carthage/Build/iOS/RxTest.framework/Modules/RxTest.swiftmodule/i386.swiftdoc new file mode 100644 index 0000000..0b69ac1 Binary files /dev/null and b/Carthage/Build/iOS/RxTest.framework/Modules/RxTest.swiftmodule/i386.swiftdoc differ diff --git a/Carthage/Build/iOS/RxTest.framework/Modules/RxTest.swiftmodule/i386.swiftmodule b/Carthage/Build/iOS/RxTest.framework/Modules/RxTest.swiftmodule/i386.swiftmodule new file mode 100644 index 0000000..cdd6f67 Binary files /dev/null and b/Carthage/Build/iOS/RxTest.framework/Modules/RxTest.swiftmodule/i386.swiftmodule differ diff --git a/Carthage/Build/iOS/RxTest.framework/Modules/RxTest.swiftmodule/x86_64.swiftdoc b/Carthage/Build/iOS/RxTest.framework/Modules/RxTest.swiftmodule/x86_64.swiftdoc new file mode 100644 index 0000000..e27de23 Binary files /dev/null and b/Carthage/Build/iOS/RxTest.framework/Modules/RxTest.swiftmodule/x86_64.swiftdoc differ diff --git a/Carthage/Build/iOS/RxTest.framework/Modules/RxTest.swiftmodule/x86_64.swiftmodule b/Carthage/Build/iOS/RxTest.framework/Modules/RxTest.swiftmodule/x86_64.swiftmodule new file mode 100644 index 0000000..8e66375 Binary files /dev/null and b/Carthage/Build/iOS/RxTest.framework/Modules/RxTest.swiftmodule/x86_64.swiftmodule differ diff --git a/Carthage/Build/iOS/RxTest.framework/Modules/module.modulemap b/Carthage/Build/iOS/RxTest.framework/Modules/module.modulemap new file mode 100644 index 0000000..bcdaaf6 --- /dev/null +++ b/Carthage/Build/iOS/RxTest.framework/Modules/module.modulemap @@ -0,0 +1,3 @@ +framework module RxTest { + header "RxTest-Swift.h" +} diff --git a/Carthage/Build/iOS/RxTest.framework/RxTest b/Carthage/Build/iOS/RxTest.framework/RxTest new file mode 100755 index 0000000..e2bb3ce Binary files /dev/null and b/Carthage/Build/iOS/RxTest.framework/RxTest differ diff --git a/Carthage/Build/iOS/SwiftyJSON.framework/Headers/SwiftyJSON-Swift.h b/Carthage/Build/iOS/SwiftyJSON.framework/Headers/SwiftyJSON-Swift.h index 701a731..92947e3 100644 --- a/Carthage/Build/iOS/SwiftyJSON.framework/Headers/SwiftyJSON-Swift.h +++ b/Carthage/Build/iOS/SwiftyJSON.framework/Headers/SwiftyJSON-Swift.h @@ -1,4 +1,4 @@ -// Generated by Apple Swift version 3.0 (swiftlang-800.0.46.2 clang-800.0.38) +// Generated by Apple Swift version 3.0.1 (swiftlang-800.0.58.6 clang-800.0.42.1) #pragma clang diagnostic push #if defined(__has_include) && __has_include() @@ -63,6 +63,11 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); #else # define SWIFT_METHOD_FAMILY(X) #endif +#if defined(__has_attribute) && __has_attribute(noescape) +# define SWIFT_NOESCAPE __attribute__((noescape)) +#else +# define SWIFT_NOESCAPE +#endif #if !defined(SWIFT_CLASS_EXTRA) # define SWIFT_CLASS_EXTRA #endif diff --git a/Carthage/Build/iOS/SwiftyJSON.framework/Info.plist b/Carthage/Build/iOS/SwiftyJSON.framework/Info.plist index e231e68..c5443cf 100644 Binary files a/Carthage/Build/iOS/SwiftyJSON.framework/Info.plist and b/Carthage/Build/iOS/SwiftyJSON.framework/Info.plist differ diff --git a/Carthage/Build/iOS/SwiftyJSON.framework/Modules/SwiftyJSON.swiftmodule/arm.swiftdoc b/Carthage/Build/iOS/SwiftyJSON.framework/Modules/SwiftyJSON.swiftmodule/arm.swiftdoc index 26d8d07..ae26ad7 100644 Binary files a/Carthage/Build/iOS/SwiftyJSON.framework/Modules/SwiftyJSON.swiftmodule/arm.swiftdoc and b/Carthage/Build/iOS/SwiftyJSON.framework/Modules/SwiftyJSON.swiftmodule/arm.swiftdoc differ diff --git a/Carthage/Build/iOS/SwiftyJSON.framework/Modules/SwiftyJSON.swiftmodule/arm.swiftmodule b/Carthage/Build/iOS/SwiftyJSON.framework/Modules/SwiftyJSON.swiftmodule/arm.swiftmodule index 53d5d89..cb1aceb 100644 Binary files a/Carthage/Build/iOS/SwiftyJSON.framework/Modules/SwiftyJSON.swiftmodule/arm.swiftmodule and b/Carthage/Build/iOS/SwiftyJSON.framework/Modules/SwiftyJSON.swiftmodule/arm.swiftmodule differ diff --git a/Carthage/Build/iOS/SwiftyJSON.framework/Modules/SwiftyJSON.swiftmodule/arm64.swiftdoc b/Carthage/Build/iOS/SwiftyJSON.framework/Modules/SwiftyJSON.swiftmodule/arm64.swiftdoc index db7159f..422d99f 100644 Binary files a/Carthage/Build/iOS/SwiftyJSON.framework/Modules/SwiftyJSON.swiftmodule/arm64.swiftdoc and b/Carthage/Build/iOS/SwiftyJSON.framework/Modules/SwiftyJSON.swiftmodule/arm64.swiftdoc differ diff --git a/Carthage/Build/iOS/SwiftyJSON.framework/Modules/SwiftyJSON.swiftmodule/arm64.swiftmodule b/Carthage/Build/iOS/SwiftyJSON.framework/Modules/SwiftyJSON.swiftmodule/arm64.swiftmodule index a511e26..dd2f722 100644 Binary files a/Carthage/Build/iOS/SwiftyJSON.framework/Modules/SwiftyJSON.swiftmodule/arm64.swiftmodule and b/Carthage/Build/iOS/SwiftyJSON.framework/Modules/SwiftyJSON.swiftmodule/arm64.swiftmodule differ diff --git a/Carthage/Build/iOS/SwiftyJSON.framework/Modules/SwiftyJSON.swiftmodule/i386.swiftdoc b/Carthage/Build/iOS/SwiftyJSON.framework/Modules/SwiftyJSON.swiftmodule/i386.swiftdoc index 77d98a9..0a7f548 100644 Binary files a/Carthage/Build/iOS/SwiftyJSON.framework/Modules/SwiftyJSON.swiftmodule/i386.swiftdoc and b/Carthage/Build/iOS/SwiftyJSON.framework/Modules/SwiftyJSON.swiftmodule/i386.swiftdoc differ diff --git a/Carthage/Build/iOS/SwiftyJSON.framework/Modules/SwiftyJSON.swiftmodule/i386.swiftmodule b/Carthage/Build/iOS/SwiftyJSON.framework/Modules/SwiftyJSON.swiftmodule/i386.swiftmodule index 507c31b..09a4b59 100644 Binary files a/Carthage/Build/iOS/SwiftyJSON.framework/Modules/SwiftyJSON.swiftmodule/i386.swiftmodule and b/Carthage/Build/iOS/SwiftyJSON.framework/Modules/SwiftyJSON.swiftmodule/i386.swiftmodule differ diff --git a/Carthage/Build/iOS/SwiftyJSON.framework/Modules/SwiftyJSON.swiftmodule/x86_64.swiftdoc b/Carthage/Build/iOS/SwiftyJSON.framework/Modules/SwiftyJSON.swiftmodule/x86_64.swiftdoc index 452ced5..261454a 100644 Binary files a/Carthage/Build/iOS/SwiftyJSON.framework/Modules/SwiftyJSON.swiftmodule/x86_64.swiftdoc and b/Carthage/Build/iOS/SwiftyJSON.framework/Modules/SwiftyJSON.swiftmodule/x86_64.swiftdoc differ diff --git a/Carthage/Build/iOS/SwiftyJSON.framework/Modules/SwiftyJSON.swiftmodule/x86_64.swiftmodule b/Carthage/Build/iOS/SwiftyJSON.framework/Modules/SwiftyJSON.swiftmodule/x86_64.swiftmodule index 37e893a..1c807b4 100644 Binary files a/Carthage/Build/iOS/SwiftyJSON.framework/Modules/SwiftyJSON.swiftmodule/x86_64.swiftmodule and b/Carthage/Build/iOS/SwiftyJSON.framework/Modules/SwiftyJSON.swiftmodule/x86_64.swiftmodule differ diff --git a/Carthage/Build/iOS/SwiftyJSON.framework/SwiftyJSON b/Carthage/Build/iOS/SwiftyJSON.framework/SwiftyJSON index 28b48a3..5425400 100755 Binary files a/Carthage/Build/iOS/SwiftyJSON.framework/SwiftyJSON and b/Carthage/Build/iOS/SwiftyJSON.framework/SwiftyJSON differ diff --git a/PartyTonight.xcodeproj/project.pbxproj b/PartyTonight.xcodeproj/project.pbxproj index fe9aa8a..99d5302 100644 --- a/PartyTonight.xcodeproj/project.pbxproj +++ b/PartyTonight.xcodeproj/project.pbxproj @@ -8,8 +8,13 @@ /* Begin PBXBuildFile section */ 171CF2621DC7C84C00CD4335 /* User.swift in Sources */ = {isa = PBXBuildFile; fileRef = 171CF2611DC7C84C00CD4335 /* User.swift */; }; - 171CF26B1DC802DA00CD4335 /* Alamofire.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 171CF2691DC802DA00CD4335 /* Alamofire.framework */; }; - 171CF26C1DC802DA00CD4335 /* SwiftyJSON.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 171CF26A1DC802DA00CD4335 /* SwiftyJSON.framework */; }; + 173510801DDC9D46008CCCF9 /* CreateEventViewController+Popover.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1735107F1DDC9D46008CCCF9 /* CreateEventViewController+Popover.swift */; }; + 173510821DDC9DCD008CCCF9 /* DateTimePickerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 173510811DDC9DCD008CCCF9 /* DateTimePickerViewController.swift */; }; + 173611421DDF419300050048 /* UIApplication+TopViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 173611411DDF419300050048 /* UIApplication+TopViewController.swift */; }; + 173611471DDF6D4A00050048 /* PromoterEventTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 173611461DDF6D4A00050048 /* PromoterEventTableViewController.swift */; }; + 1736114B1DDFA64D00050048 /* GoerNavController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1736114A1DDFA64D00050048 /* GoerNavController.swift */; }; + 1736114D1DDFAD0900050048 /* GoerLoginViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1736114C1DDFAD0900050048 /* GoerLoginViewController.swift */; }; + 1736114F1DDFAD3500050048 /* GoerRegistrationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1736114E1DDFAD3500050048 /* GoerRegistrationViewController.swift */; }; 174959D71DC9ED760004903D /* FalkinSansPERSONAL.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 174959D61DC9ED760004903D /* FalkinSansPERSONAL.ttf */; }; 174BB8761DC665D000CDAE86 /* APIManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 174BB8751DC665D000CDAE86 /* APIManager.swift */; }; 174BB87C1DC6726000CDAE86 /* PromoterLoginViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 174BB87B1DC6726000CDAE86 /* PromoterLoginViewController.swift */; }; @@ -23,21 +28,47 @@ 1754899D1DC5222300993344 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 1754899B1DC5222300993344 /* Main.storyboard */; }; 1754899F1DC5222300993344 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 1754899E1DC5222300993344 /* Assets.xcassets */; }; 175489A21DC5222300993344 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 175489A01DC5222300993344 /* LaunchScreen.storyboard */; }; - 17B49F381DC803FD002FFA00 /* Alamofire.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 171CF2691DC802DA00CD4335 /* Alamofire.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 17B49F3A1DC803FD002FFA00 /* SwiftyJSON.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 171CF26A1DC802DA00CD4335 /* SwiftyJSON.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 17B49F3B1DC803FD002FFA00 /* RxAlamofire.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 171CF2671DC7F12800CD4335 /* RxAlamofire.framework */; }; - 17B49F3C1DC803FD002FFA00 /* RxAlamofire.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 171CF2671DC7F12800CD4335 /* RxAlamofire.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 17B49F3D1DC803FD002FFA00 /* ObjectMapper.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 171CF2631DC7D57200CD4335 /* ObjectMapper.framework */; }; - 17B49F3E1DC803FD002FFA00 /* ObjectMapper.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 171CF2631DC7D57200CD4335 /* ObjectMapper.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 17B49F3F1DC803FD002FFA00 /* RxSwift.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 171CF25E1DC7C5B600CD4335 /* RxSwift.framework */; }; - 17B49F401DC803FD002FFA00 /* RxSwift.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 171CF25E1DC7C5B600CD4335 /* RxSwift.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 17563E891DDE22FE00ED545F /* Date+DateFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 17563E881DDE22FE00ED545F /* Date+DateFormatter.swift */; }; + 17563E8C1DDE405400ED545F /* Wireframe.swift in Sources */ = {isa = PBXBuildFile; fileRef = 17563E8B1DDE405400ED545F /* Wireframe.swift */; }; + 175FCAFF1DDB4DA4004014C9 /* ChooseLocationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 175FCAFE1DDB4DA4004014C9 /* ChooseLocationViewController.swift */; }; + 175FCB011DDB76AE004014C9 /* CreateEventViewController+TextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = 175FCB001DDB76AE004014C9 /* CreateEventViewController+TextField.swift */; }; + 175FCB031DDB943D004014C9 /* PromoterEventsViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 175FCB021DDB943D004014C9 /* PromoterEventsViewModel.swift */; }; + 1775F1441DD21ECD00B90EEA /* Alamofire.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1775F13C1DD21ECD00B90EEA /* Alamofire.framework */; }; + 1775F1451DD21ECD00B90EEA /* Alamofire.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 1775F13C1DD21ECD00B90EEA /* Alamofire.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 1775F1461DD21ECD00B90EEA /* ObjectMapper.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1775F13D1DD21ECD00B90EEA /* ObjectMapper.framework */; }; + 1775F1471DD21ECD00B90EEA /* ObjectMapper.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 1775F13D1DD21ECD00B90EEA /* ObjectMapper.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 1775F1481DD21ECD00B90EEA /* RxAlamofire.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1775F13E1DD21ECD00B90EEA /* RxAlamofire.framework */; }; + 1775F1491DD21ECD00B90EEA /* RxAlamofire.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 1775F13E1DD21ECD00B90EEA /* RxAlamofire.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 1775F14A1DD21ECD00B90EEA /* RxBlocking.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1775F13F1DD21ECD00B90EEA /* RxBlocking.framework */; }; + 1775F14B1DD21ECD00B90EEA /* RxBlocking.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 1775F13F1DD21ECD00B90EEA /* RxBlocking.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 1775F14C1DD21ECD00B90EEA /* RxCocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1775F1401DD21ECD00B90EEA /* RxCocoa.framework */; }; + 1775F14D1DD21ECD00B90EEA /* RxCocoa.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 1775F1401DD21ECD00B90EEA /* RxCocoa.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 1775F14E1DD21ECD00B90EEA /* RxSwift.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1775F1411DD21ECD00B90EEA /* RxSwift.framework */; }; + 1775F14F1DD21ECD00B90EEA /* RxSwift.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 1775F1411DD21ECD00B90EEA /* RxSwift.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 1785052A1DD234AA00D5BD79 /* SwiftyJSON.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 178505291DD234AA00D5BD79 /* SwiftyJSON.framework */; }; + 1785052B1DD234AA00D5BD79 /* SwiftyJSON.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 178505291DD234AA00D5BD79 /* SwiftyJSON.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 178505321DD23F3300D5BD79 /* PromoterNavController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 178505311DD23F3300D5BD79 /* PromoterNavController.swift */; }; + 1785053A1DD25A1B00D5BD79 /* EventTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 178505381DD25A1B00D5BD79 /* EventTableViewCell.swift */; }; + 1785053B1DD25A1B00D5BD79 /* EventTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 178505391DD25A1B00D5BD79 /* EventTableViewCell.xib */; }; + 178505401DD288D900D5BD79 /* EventCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1785053E1DD288D900D5BD79 /* EventCollectionViewCell.swift */; }; + 178505411DD288D900D5BD79 /* EventCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1785053F1DD288D900D5BD79 /* EventCollectionViewCell.xib */; }; + 178505431DD28A5A00D5BD79 /* PromoterEventsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 178505421DD28A5A00D5BD79 /* PromoterEventsViewController.swift */; }; 17B49F411DC803FD002FFA00 /* Pods_PartyTonight.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 213E09A20FF03D5C94A30589 /* Pods_PartyTonight.framework */; }; 17B49F421DC803FD002FFA00 /* Pods_PartyTonight.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 213E09A20FF03D5C94A30589 /* Pods_PartyTonight.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 17B49F451DC80458002FFA00 /* RxCocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 17B49F441DC80458002FFA00 /* RxCocoa.framework */; }; - 17B49F471DC8045E002FFA00 /* RxCocoa.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 17B49F441DC80458002FFA00 /* RxCocoa.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 17B8B52D1DD5A43300B784B8 /* PromoterEventsViewController+CollectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 17B8B52C1DD5A43300B784B8 /* PromoterEventsViewController+CollectionView.swift */; }; + 17B8B52F1DD5A50E00B784B8 /* CreateEventViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 17B8B52E1DD5A50E00B784B8 /* CreateEventViewController.swift */; }; + 17B8B5321DD5E43500B784B8 /* CreateEventViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 17B8B5311DD5E43500B784B8 /* CreateEventViewModel.swift */; }; + 17B8B5341DD6147D00B784B8 /* Event.swift in Sources */ = {isa = PBXBuildFile; fileRef = 17B8B5331DD6147D00B784B8 /* Event.swift */; }; + 17B8B5361DD6187400B784B8 /* BillingInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 17B8B5351DD6187400B784B8 /* BillingInfo.swift */; }; 17C5B1AE1DCBE6C40093BC07 /* Token.swift in Sources */ = {isa = PBXBuildFile; fileRef = 17C5B1AD1DCBE6C40093BC07 /* Token.swift */; }; 17C5B1B01DCBF2240093BC07 /* RegistrationViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 17C5B1AF1DCBF2240093BC07 /* RegistrationViewModel.swift */; }; 17C5B1B31DCC6FB30093BC07 /* String+Encoding.swift in Sources */ = {isa = PBXBuildFile; fileRef = 17C5B1B21DCC6FB30093BC07 /* String+Encoding.swift */; }; + 17CA197E1DE03F0800BD67A9 /* PromoterStatementTotalViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 17CA197D1DE03F0800BD67A9 /* PromoterStatementTotalViewController.swift */; }; + 17CA19821DE0405700BD67A9 /* PromoterTablesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 17CA19811DE0405700BD67A9 /* PromoterTablesViewController.swift */; }; + 17CA19841DE0407600BD67A9 /* PromoterBottlesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 17CA19831DE0407600BD67A9 /* PromoterBottlesViewController.swift */; }; + 17CA19861DE0693400BD67A9 /* BottlesTablesCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 17CA19851DE0693400BD67A9 /* BottlesTablesCell.swift */; }; + 17DE96C11DD51CCD00FA5C43 /* TypePriceQuantityView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 17DE96C01DD51CCD00FA5C43 /* TypePriceQuantityView.swift */; }; + 17DE96C31DD51CF600FA5C43 /* TypePriceQuantityView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 17DE96C21DD51CF600FA5C43 /* TypePriceQuantityView.xib */; }; /* End PBXBuildFile section */ /* Begin PBXCopyFilesBuildPhase section */ @@ -47,13 +78,14 @@ dstPath = ""; dstSubfolderSpec = 10; files = ( - 17B49F401DC803FD002FFA00 /* RxSwift.framework in Embed Frameworks */, + 1775F14D1DD21ECD00B90EEA /* RxCocoa.framework in Embed Frameworks */, + 1775F1471DD21ECD00B90EEA /* ObjectMapper.framework in Embed Frameworks */, + 1785052B1DD234AA00D5BD79 /* SwiftyJSON.framework in Embed Frameworks */, + 1775F14F1DD21ECD00B90EEA /* RxSwift.framework in Embed Frameworks */, + 1775F14B1DD21ECD00B90EEA /* RxBlocking.framework in Embed Frameworks */, 17B49F421DC803FD002FFA00 /* Pods_PartyTonight.framework in Embed Frameworks */, - 17B49F471DC8045E002FFA00 /* RxCocoa.framework in Embed Frameworks */, - 17B49F3A1DC803FD002FFA00 /* SwiftyJSON.framework in Embed Frameworks */, - 17B49F381DC803FD002FFA00 /* Alamofire.framework in Embed Frameworks */, - 17B49F3E1DC803FD002FFA00 /* ObjectMapper.framework in Embed Frameworks */, - 17B49F3C1DC803FD002FFA00 /* RxAlamofire.framework in Embed Frameworks */, + 1775F1451DD21ECD00B90EEA /* Alamofire.framework in Embed Frameworks */, + 1775F1491DD21ECD00B90EEA /* RxAlamofire.framework in Embed Frameworks */, ); name = "Embed Frameworks"; runOnlyForDeploymentPostprocessing = 0; @@ -67,6 +99,13 @@ 171CF2671DC7F12800CD4335 /* RxAlamofire.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = RxAlamofire.framework; path = Carthage/Build/iOS/RxAlamofire.framework; sourceTree = ""; }; 171CF2691DC802DA00CD4335 /* Alamofire.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Alamofire.framework; path = Carthage/Build/iOS/Alamofire.framework; sourceTree = ""; }; 171CF26A1DC802DA00CD4335 /* SwiftyJSON.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SwiftyJSON.framework; path = Carthage/Build/iOS/SwiftyJSON.framework; sourceTree = ""; }; + 1735107F1DDC9D46008CCCF9 /* CreateEventViewController+Popover.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = "CreateEventViewController+Popover.swift"; path = "Controllers/Promoter/Extentions/CreateEventViewController+Popover.swift"; sourceTree = ""; }; + 173510811DDC9DCD008CCCF9 /* DateTimePickerViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = DateTimePickerViewController.swift; path = Controllers/Promoter/DateTimePickerViewController.swift; sourceTree = ""; }; + 173611411DDF419300050048 /* UIApplication+TopViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = "UIApplication+TopViewController.swift"; path = "Extentions/UIApplication+TopViewController.swift"; sourceTree = ""; }; + 173611461DDF6D4A00050048 /* PromoterEventTableViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = PromoterEventTableViewController.swift; path = Controllers/Promoter/PromoterEventTableViewController.swift; sourceTree = ""; }; + 1736114A1DDFA64D00050048 /* GoerNavController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = GoerNavController.swift; path = Controllers/Navigation/GoerNavController.swift; sourceTree = ""; }; + 1736114C1DDFAD0900050048 /* GoerLoginViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = GoerLoginViewController.swift; path = Controllers/Authorization/GoerLoginViewController.swift; sourceTree = ""; }; + 1736114E1DDFAD3500050048 /* GoerRegistrationViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = GoerRegistrationViewController.swift; path = Controllers/Authorization/GoerRegistrationViewController.swift; sourceTree = ""; }; 174959D61DC9ED760004903D /* FalkinSansPERSONAL.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; name = FalkinSansPERSONAL.ttf; path = ../../fonts/falkinsans/FalkinSansPERSONAL.ttf; sourceTree = ""; }; 174BB8751DC665D000CDAE86 /* APIManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = APIManager.swift; path = REST/APIManager.swift; sourceTree = ""; }; 174BB87B1DC6726000CDAE86 /* PromoterLoginViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = PromoterLoginViewController.swift; path = Controllers/Authorization/PromoterLoginViewController.swift; sourceTree = ""; }; @@ -82,10 +121,43 @@ 1754899E1DC5222300993344 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 175489A11DC5222300993344 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 175489A31DC5222300993344 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 17563E881DDE22FE00ED545F /* Date+DateFormatter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = "Date+DateFormatter.swift"; path = "Extentions/Date+DateFormatter.swift"; sourceTree = ""; }; + 17563E8B1DDE405400ED545F /* Wireframe.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = Wireframe.swift; path = Services/Wireframe.swift; sourceTree = ""; }; + 175FCAFE1DDB4DA4004014C9 /* ChooseLocationViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ChooseLocationViewController.swift; path = Controllers/Map/ChooseLocationViewController.swift; sourceTree = ""; }; + 175FCB001DDB76AE004014C9 /* CreateEventViewController+TextField.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = "CreateEventViewController+TextField.swift"; path = "Controllers/Promoter/Extentions/CreateEventViewController+TextField.swift"; sourceTree = ""; }; + 175FCB021DDB943D004014C9 /* PromoterEventsViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = PromoterEventsViewModel.swift; path = VM/Promoter/PromoterEventsViewModel.swift; sourceTree = ""; }; + 1775F13C1DD21ECD00B90EEA /* Alamofire.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Alamofire.framework; path = Carthage/Build/iOS/Alamofire.framework; sourceTree = ""; }; + 1775F13D1DD21ECD00B90EEA /* ObjectMapper.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ObjectMapper.framework; path = Carthage/Build/iOS/ObjectMapper.framework; sourceTree = ""; }; + 1775F13E1DD21ECD00B90EEA /* RxAlamofire.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = RxAlamofire.framework; path = Carthage/Build/iOS/RxAlamofire.framework; sourceTree = ""; }; + 1775F13F1DD21ECD00B90EEA /* RxBlocking.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = RxBlocking.framework; path = Carthage/Build/iOS/RxBlocking.framework; sourceTree = ""; }; + 1775F1401DD21ECD00B90EEA /* RxCocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = RxCocoa.framework; path = Carthage/Build/iOS/RxCocoa.framework; sourceTree = ""; }; + 1775F1411DD21ECD00B90EEA /* RxSwift.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = RxSwift.framework; path = Carthage/Build/iOS/RxSwift.framework; sourceTree = ""; }; + 1775F1421DD21ECD00B90EEA /* RxTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = RxTest.framework; path = Carthage/Build/iOS/RxTest.framework; sourceTree = ""; }; + 1775F1431DD21ECD00B90EEA /* SwiftyJSON.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SwiftyJSON.framework; path = Carthage/Build/iOS/SwiftyJSON.framework; sourceTree = ""; }; + 1775F1541DD21F3100B90EEA /* SwiftyJSON.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SwiftyJSON.framework; path = Carthage/Build/iOS/SwiftyJSON.framework; sourceTree = ""; }; + 178505291DD234AA00D5BD79 /* SwiftyJSON.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SwiftyJSON.framework; path = Carthage/Build/iOS/SwiftyJSON.framework; sourceTree = ""; }; + 1785052C1DD2357A00D5BD79 /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Platforms/iPhoneOS.platform/Developer/Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; }; + 178505311DD23F3300D5BD79 /* PromoterNavController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = PromoterNavController.swift; path = Controllers/Navigation/PromoterNavController.swift; sourceTree = ""; }; + 178505381DD25A1B00D5BD79 /* EventTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = EventTableViewCell.swift; path = UI/EventTableViewCell.swift; sourceTree = ""; }; + 178505391DD25A1B00D5BD79 /* EventTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = EventTableViewCell.xib; path = UI/EventTableViewCell.xib; sourceTree = ""; }; + 1785053E1DD288D900D5BD79 /* EventCollectionViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = EventCollectionViewCell.swift; path = UI/EventCollectionViewCell.swift; sourceTree = ""; }; + 1785053F1DD288D900D5BD79 /* EventCollectionViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = EventCollectionViewCell.xib; path = UI/EventCollectionViewCell.xib; sourceTree = ""; }; + 178505421DD28A5A00D5BD79 /* PromoterEventsViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = PromoterEventsViewController.swift; path = Controllers/Promoter/PromoterEventsViewController.swift; sourceTree = ""; }; 17B49F441DC80458002FFA00 /* RxCocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = RxCocoa.framework; path = Carthage/Build/iOS/RxCocoa.framework; sourceTree = ""; }; + 17B8B52C1DD5A43300B784B8 /* PromoterEventsViewController+CollectionView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = "PromoterEventsViewController+CollectionView.swift"; path = "Controllers/Promoter/Extentions/PromoterEventsViewController+CollectionView.swift"; sourceTree = ""; }; + 17B8B52E1DD5A50E00B784B8 /* CreateEventViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = CreateEventViewController.swift; path = Controllers/Promoter/CreateEventViewController.swift; sourceTree = ""; }; + 17B8B5311DD5E43500B784B8 /* CreateEventViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = CreateEventViewModel.swift; path = VM/Promoter/CreateEventViewModel.swift; sourceTree = ""; }; + 17B8B5331DD6147D00B784B8 /* Event.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = Event.swift; path = Entities/Event.swift; sourceTree = ""; }; + 17B8B5351DD6187400B784B8 /* BillingInfo.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = BillingInfo.swift; path = Entities/BillingInfo.swift; sourceTree = ""; }; 17C5B1AD1DCBE6C40093BC07 /* Token.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = Token.swift; path = Entities/Token.swift; sourceTree = ""; }; 17C5B1AF1DCBF2240093BC07 /* RegistrationViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = RegistrationViewModel.swift; path = VM/Authorization/RegistrationViewModel.swift; sourceTree = ""; }; 17C5B1B21DCC6FB30093BC07 /* String+Encoding.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = "String+Encoding.swift"; path = "Extentions/String+Encoding.swift"; sourceTree = ""; }; + 17CA197D1DE03F0800BD67A9 /* PromoterStatementTotalViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = PromoterStatementTotalViewController.swift; path = Controllers/Promoter/PromoterStatementTotalViewController.swift; sourceTree = ""; }; + 17CA19811DE0405700BD67A9 /* PromoterTablesViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = PromoterTablesViewController.swift; path = Controllers/Promoter/PromoterTablesViewController.swift; sourceTree = ""; }; + 17CA19831DE0407600BD67A9 /* PromoterBottlesViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = PromoterBottlesViewController.swift; path = Controllers/Promoter/PromoterBottlesViewController.swift; sourceTree = ""; }; + 17CA19851DE0693400BD67A9 /* BottlesTablesCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = BottlesTablesCell.swift; path = UI/BottlesTablesCell.swift; sourceTree = ""; }; + 17DE96C01DD51CCD00FA5C43 /* TypePriceQuantityView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = TypePriceQuantityView.swift; path = UI/TypePriceQuantityView.swift; sourceTree = ""; }; + 17DE96C21DD51CF600FA5C43 /* TypePriceQuantityView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = TypePriceQuantityView.xib; path = UI/TypePriceQuantityView.xib; sourceTree = ""; }; 213E09A20FF03D5C94A30589 /* Pods_PartyTonight.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_PartyTonight.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 821866A83DBAF48E25583913 /* Pods-PartyTonight.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-PartyTonight.debug.xcconfig"; path = "Pods/Target Support Files/Pods-PartyTonight/Pods-PartyTonight.debug.xcconfig"; sourceTree = ""; }; EF07FB577222FA3485322B90 /* Pods-PartyTonight.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-PartyTonight.release.xcconfig"; path = "Pods/Target Support Files/Pods-PartyTonight/Pods-PartyTonight.release.xcconfig"; sourceTree = ""; }; @@ -96,13 +168,14 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 17B49F451DC80458002FFA00 /* RxCocoa.framework in Frameworks */, - 17B49F3F1DC803FD002FFA00 /* RxSwift.framework in Frameworks */, - 17B49F3D1DC803FD002FFA00 /* ObjectMapper.framework in Frameworks */, - 171CF26B1DC802DA00CD4335 /* Alamofire.framework in Frameworks */, - 171CF26C1DC802DA00CD4335 /* SwiftyJSON.framework in Frameworks */, + 1775F14C1DD21ECD00B90EEA /* RxCocoa.framework in Frameworks */, + 1775F1461DD21ECD00B90EEA /* ObjectMapper.framework in Frameworks */, + 1785052A1DD234AA00D5BD79 /* SwiftyJSON.framework in Frameworks */, + 1775F14E1DD21ECD00B90EEA /* RxSwift.framework in Frameworks */, + 1775F14A1DD21ECD00B90EEA /* RxBlocking.framework in Frameworks */, 17B49F411DC803FD002FFA00 /* Pods_PartyTonight.framework in Frameworks */, - 17B49F3B1DC803FD002FFA00 /* RxAlamofire.framework in Frameworks */, + 1775F1441DD21ECD00B90EEA /* Alamofire.framework in Frameworks */, + 1775F1481DD21ECD00B90EEA /* RxAlamofire.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -112,6 +185,7 @@ 171CF25D1DC7C5B400CD4335 /* Frameworks */ = { isa = PBXGroup; children = ( + 1785052C1DD2357A00D5BD79 /* XCTest.framework */, 17B49F441DC80458002FFA00 /* RxCocoa.framework */, 171CF2691DC802DA00CD4335 /* Alamofire.framework */, 171CF26A1DC802DA00CD4335 /* SwiftyJSON.framework */, @@ -128,10 +202,25 @@ children = ( 171CF2611DC7C84C00CD4335 /* User.swift */, 17C5B1AD1DCBE6C40093BC07 /* Token.swift */, + 17B8B5331DD6147D00B784B8 /* Event.swift */, + 17B8B5351DD6187400B784B8 /* BillingInfo.swift */, ); name = Entities; sourceTree = ""; }; + 173611431DDF6CC200050048 /* Event */ = { + isa = PBXGroup; + children = ( + 178505421DD28A5A00D5BD79 /* PromoterEventsViewController.swift */, + 17B8B52E1DD5A50E00B784B8 /* CreateEventViewController.swift */, + 173611461DDF6D4A00050048 /* PromoterEventTableViewController.swift */, + 17CA197D1DE03F0800BD67A9 /* PromoterStatementTotalViewController.swift */, + 17CA19811DE0405700BD67A9 /* PromoterTablesViewController.swift */, + 17CA19831DE0407600BD67A9 /* PromoterBottlesViewController.swift */, + ); + name = Event; + sourceTree = ""; + }; 174BB8741DC665B200CDAE86 /* REST */ = { isa = PBXGroup; children = ( @@ -143,6 +232,10 @@ 174BB8771DC6706200CDAE86 /* Controllers */ = { isa = PBXGroup; children = ( + 175FCAFD1DDB4D36004014C9 /* Map */, + 178505341DD2576200D5BD79 /* Promoter */, + 178505331DD2575B00D5BD79 /* Goer */, + 178505301DD23EE000D5BD79 /* Navigation */, 174BB8781DC6708100CDAE86 /* Authorization */, ); name = Controllers; @@ -153,6 +246,8 @@ children = ( 174BB87B1DC6726000CDAE86 /* PromoterLoginViewController.swift */, 174BB87D1DC6729000CDAE86 /* PromoterRegistrationViewController.swift */, + 1736114C1DDFAD0900050048 /* GoerLoginViewController.swift */, + 1736114E1DDFAD3500050048 /* GoerRegistrationViewController.swift */, ); name = Authorization; sourceTree = ""; @@ -160,6 +255,7 @@ 174BB87F1DC6746000CDAE86 /* VM */ = { isa = PBXGroup; children = ( + 17B8B5301DD5E40800B784B8 /* Promoter */, 174BB8801DC6747600CDAE86 /* Authorization */, ); name = VM; @@ -188,6 +284,16 @@ 1754898B1DC5222300993344 = { isa = PBXGroup; children = ( + 178505291DD234AA00D5BD79 /* SwiftyJSON.framework */, + 1775F1541DD21F3100B90EEA /* SwiftyJSON.framework */, + 1775F13C1DD21ECD00B90EEA /* Alamofire.framework */, + 1775F13D1DD21ECD00B90EEA /* ObjectMapper.framework */, + 1775F13E1DD21ECD00B90EEA /* RxAlamofire.framework */, + 1775F13F1DD21ECD00B90EEA /* RxBlocking.framework */, + 1775F1401DD21ECD00B90EEA /* RxCocoa.framework */, + 1775F1411DD21ECD00B90EEA /* RxSwift.framework */, + 1775F1421DD21ECD00B90EEA /* RxTest.framework */, + 1775F1431DD21ECD00B90EEA /* SwiftyJSON.framework */, 175489961DC5222300993344 /* PartyTonight */, 175489951DC5222300993344 /* Products */, 171CF25D1DC7C5B400CD4335 /* Frameworks */, @@ -206,6 +312,8 @@ 175489961DC5222300993344 /* PartyTonight */ = { isa = PBXGroup; children = ( + 17563E8A1DDE402400ED545F /* Services */, + 178505371DD259ED00D5BD79 /* UI */, 17C5B1B11DCC6F890093BC07 /* Extentions */, 171CF2601DC7C7DF00CD4335 /* Entities */, 174BB8831DC6814400CDAE86 /* Resources */, @@ -222,10 +330,87 @@ path = PartyTonight; sourceTree = ""; }; + 17563E8A1DDE402400ED545F /* Services */ = { + isa = PBXGroup; + children = ( + 17563E8B1DDE405400ED545F /* Wireframe.swift */, + ); + name = Services; + sourceTree = ""; + }; + 175FCAFD1DDB4D36004014C9 /* Map */ = { + isa = PBXGroup; + children = ( + 175FCAFE1DDB4DA4004014C9 /* ChooseLocationViewController.swift */, + ); + name = Map; + sourceTree = ""; + }; + 178505301DD23EE000D5BD79 /* Navigation */ = { + isa = PBXGroup; + children = ( + 178505311DD23F3300D5BD79 /* PromoterNavController.swift */, + 1736114A1DDFA64D00050048 /* GoerNavController.swift */, + ); + name = Navigation; + sourceTree = ""; + }; + 178505331DD2575B00D5BD79 /* Goer */ = { + isa = PBXGroup; + children = ( + ); + name = Goer; + sourceTree = ""; + }; + 178505341DD2576200D5BD79 /* Promoter */ = { + isa = PBXGroup; + children = ( + 173611431DDF6CC200050048 /* Event */, + 17B8B52B1DD5A3ED00B784B8 /* Extentions */, + 173510811DDC9DCD008CCCF9 /* DateTimePickerViewController.swift */, + ); + name = Promoter; + sourceTree = ""; + }; + 178505371DD259ED00D5BD79 /* UI */ = { + isa = PBXGroup; + children = ( + 178505381DD25A1B00D5BD79 /* EventTableViewCell.swift */, + 178505391DD25A1B00D5BD79 /* EventTableViewCell.xib */, + 1785053E1DD288D900D5BD79 /* EventCollectionViewCell.swift */, + 1785053F1DD288D900D5BD79 /* EventCollectionViewCell.xib */, + 17DE96C01DD51CCD00FA5C43 /* TypePriceQuantityView.swift */, + 17DE96C21DD51CF600FA5C43 /* TypePriceQuantityView.xib */, + 17CA19851DE0693400BD67A9 /* BottlesTablesCell.swift */, + ); + name = UI; + sourceTree = ""; + }; + 17B8B52B1DD5A3ED00B784B8 /* Extentions */ = { + isa = PBXGroup; + children = ( + 17B8B52C1DD5A43300B784B8 /* PromoterEventsViewController+CollectionView.swift */, + 175FCB001DDB76AE004014C9 /* CreateEventViewController+TextField.swift */, + 1735107F1DDC9D46008CCCF9 /* CreateEventViewController+Popover.swift */, + ); + name = Extentions; + sourceTree = ""; + }; + 17B8B5301DD5E40800B784B8 /* Promoter */ = { + isa = PBXGroup; + children = ( + 17B8B5311DD5E43500B784B8 /* CreateEventViewModel.swift */, + 175FCB021DDB943D004014C9 /* PromoterEventsViewModel.swift */, + ); + name = Promoter; + sourceTree = ""; + }; 17C5B1B11DCC6F890093BC07 /* Extentions */ = { isa = PBXGroup; children = ( 17C5B1B21DCC6FB30093BC07 /* String+Encoding.swift */, + 17563E881DDE22FE00ED545F /* Date+DateFormatter.swift */, + 173611411DDF419300050048 /* UIApplication+TopViewController.swift */, ); name = Extentions; sourceTree = ""; @@ -307,10 +492,13 @@ 175489A21DC5222300993344 /* LaunchScreen.storyboard in Resources */, 174BB88B1DC69E3300CDAE86 /* Aguda Bold.ttf in Resources */, 1754899F1DC5222300993344 /* Assets.xcassets in Resources */, + 17DE96C31DD51CF600FA5C43 /* TypePriceQuantityView.xib in Resources */, 174959D71DC9ED760004903D /* FalkinSansPERSONAL.ttf in Resources */, + 1785053B1DD25A1B00D5BD79 /* EventTableViewCell.xib in Resources */, 174BB8891DC691C900CDAE86 /* Aguda Regular.ttf in Resources */, 174BB8871DC683D000CDAE86 /* Sugar Plums.ttf in Resources */, 1754899D1DC5222300993344 /* Main.storyboard in Resources */, + 178505411DD288D900D5BD79 /* EventCollectionViewCell.xib in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -369,14 +557,40 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 1785053A1DD25A1B00D5BD79 /* EventTableViewCell.swift in Sources */, + 17CA19821DE0405700BD67A9 /* PromoterTablesViewController.swift in Sources */, + 17CA19861DE0693400BD67A9 /* BottlesTablesCell.swift in Sources */, + 17B8B5361DD6187400B784B8 /* BillingInfo.swift in Sources */, + 1736114D1DDFAD0900050048 /* GoerLoginViewController.swift in Sources */, + 178505431DD28A5A00D5BD79 /* PromoterEventsViewController.swift in Sources */, + 173611421DDF419300050048 /* UIApplication+TopViewController.swift in Sources */, + 175FCB031DDB943D004014C9 /* PromoterEventsViewModel.swift in Sources */, + 1736114F1DDFAD3500050048 /* GoerRegistrationViewController.swift in Sources */, + 17DE96C11DD51CCD00FA5C43 /* TypePriceQuantityView.swift in Sources */, + 178505401DD288D900D5BD79 /* EventCollectionViewCell.swift in Sources */, 174BB87C1DC6726000CDAE86 /* PromoterLoginViewController.swift in Sources */, + 17B8B5321DD5E43500B784B8 /* CreateEventViewModel.swift in Sources */, + 17B8B5341DD6147D00B784B8 /* Event.swift in Sources */, + 173510821DDC9DCD008CCCF9 /* DateTimePickerViewController.swift in Sources */, 17C5B1B31DCC6FB30093BC07 /* String+Encoding.swift in Sources */, 17C5B1B01DCBF2240093BC07 /* RegistrationViewModel.swift in Sources */, 174BB8761DC665D000CDAE86 /* APIManager.swift in Sources */, 174BB8821DC6774A00CDAE86 /* LoginViewModel.swift in Sources */, + 173611471DDF6D4A00050048 /* PromoterEventTableViewController.swift in Sources */, + 17563E891DDE22FE00ED545F /* Date+DateFormatter.swift in Sources */, 1754899A1DC5222300993344 /* ViewController.swift in Sources */, + 17B8B52D1DD5A43300B784B8 /* PromoterEventsViewController+CollectionView.swift in Sources */, + 175FCAFF1DDB4DA4004014C9 /* ChooseLocationViewController.swift in Sources */, + 17CA197E1DE03F0800BD67A9 /* PromoterStatementTotalViewController.swift in Sources */, + 1736114B1DDFA64D00050048 /* GoerNavController.swift in Sources */, 174BB87E1DC6729000CDAE86 /* PromoterRegistrationViewController.swift in Sources */, + 17B8B52F1DD5A50E00B784B8 /* CreateEventViewController.swift in Sources */, + 178505321DD23F3300D5BD79 /* PromoterNavController.swift in Sources */, 175489981DC5222300993344 /* AppDelegate.swift in Sources */, + 17CA19841DE0407600BD67A9 /* PromoterBottlesViewController.swift in Sources */, + 175FCB011DDB76AE004014C9 /* CreateEventViewController+TextField.swift in Sources */, + 17563E8C1DDE405400ED545F /* Wireframe.swift in Sources */, + 173510801DDC9D46008CCCF9 /* CreateEventViewController+Popover.swift in Sources */, 171CF2621DC7C84C00CD4335 /* User.swift in Sources */, 17C5B1AE1DCBE6C40093BC07 /* Token.swift in Sources */, ); diff --git a/PartyTonight/Assets.xcassets/button_bg_noborders.imageset/Contents.json b/PartyTonight/Assets.xcassets/button_bg_noborders.imageset/Contents.json new file mode 100644 index 0000000..cc1c520 --- /dev/null +++ b/PartyTonight/Assets.xcassets/button_bg_noborders.imageset/Contents.json @@ -0,0 +1,65 @@ +{ + "images" : [ + { + "resizing" : { + "mode" : "9-part", + "center" : { + "mode" : "tile", + "width" : 1, + "height" : 1 + }, + "cap-insets" : { + "bottom" : 6, + "top" : 6, + "right" : 6, + "left" : 6 + } + }, + "idiom" : "universal", + "filename" : "button_bg_noborders.png", + "scale" : "1x" + }, + { + "resizing" : { + "mode" : "9-part", + "center" : { + "mode" : "tile", + "width" : 1, + "height" : 1 + }, + "cap-insets" : { + "bottom" : 12, + "top" : 12, + "right" : 12, + "left" : 12 + } + }, + "idiom" : "universal", + "filename" : "button_bg_noborders@2x.png", + "scale" : "2x" + }, + { + "resizing" : { + "mode" : "9-part", + "center" : { + "mode" : "tile", + "width" : 1, + "height" : 1 + }, + "cap-insets" : { + "bottom" : 19, + "top" : 19, + "right" : 19, + "left" : 19 + } + }, + "idiom" : "universal", + "filename" : "button_bg_noborders@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/PartyTonight/Assets.xcassets/button_bg_noborders.imageset/button_bg_noborders.png b/PartyTonight/Assets.xcassets/button_bg_noborders.imageset/button_bg_noborders.png new file mode 100644 index 0000000..9c45448 Binary files /dev/null and b/PartyTonight/Assets.xcassets/button_bg_noborders.imageset/button_bg_noborders.png differ diff --git a/PartyTonight/Assets.xcassets/button_bg_noborders.imageset/button_bg_noborders@2x.png b/PartyTonight/Assets.xcassets/button_bg_noborders.imageset/button_bg_noborders@2x.png new file mode 100644 index 0000000..f13999a Binary files /dev/null and b/PartyTonight/Assets.xcassets/button_bg_noborders.imageset/button_bg_noborders@2x.png differ diff --git a/PartyTonight/Assets.xcassets/button_bg_noborders.imageset/button_bg_noborders@3x.png b/PartyTonight/Assets.xcassets/button_bg_noborders.imageset/button_bg_noborders@3x.png new file mode 100644 index 0000000..5038859 Binary files /dev/null and b/PartyTonight/Assets.xcassets/button_bg_noborders.imageset/button_bg_noborders@3x.png differ diff --git a/PartyTonight/Assets.xcassets/door_revenue.imageset/Contents.json b/PartyTonight/Assets.xcassets/door_revenue.imageset/Contents.json new file mode 100644 index 0000000..6ea0d83 --- /dev/null +++ b/PartyTonight/Assets.xcassets/door_revenue.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "door_revenue.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "door_revenue@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "door_revenue@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/PartyTonight/Assets.xcassets/door_revenue.imageset/door_revenue.png b/PartyTonight/Assets.xcassets/door_revenue.imageset/door_revenue.png new file mode 100644 index 0000000..bbb1083 Binary files /dev/null and b/PartyTonight/Assets.xcassets/door_revenue.imageset/door_revenue.png differ diff --git a/PartyTonight/Assets.xcassets/door_revenue.imageset/door_revenue@2x.png b/PartyTonight/Assets.xcassets/door_revenue.imageset/door_revenue@2x.png new file mode 100644 index 0000000..4ab138e Binary files /dev/null and b/PartyTonight/Assets.xcassets/door_revenue.imageset/door_revenue@2x.png differ diff --git a/PartyTonight/Assets.xcassets/door_revenue.imageset/door_revenue@3x.png b/PartyTonight/Assets.xcassets/door_revenue.imageset/door_revenue@3x.png new file mode 100644 index 0000000..e41b277 Binary files /dev/null and b/PartyTonight/Assets.xcassets/door_revenue.imageset/door_revenue@3x.png differ diff --git a/PartyTonight/Assets.xcassets/goer_call_a_cab.imageset/Contents.json b/PartyTonight/Assets.xcassets/goer_call_a_cab.imageset/Contents.json new file mode 100644 index 0000000..b584057 --- /dev/null +++ b/PartyTonight/Assets.xcassets/goer_call_a_cab.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "goer_call_a_cab.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "goer_call_a_cab@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "goer_call_a_cab@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/PartyTonight/Assets.xcassets/goer_call_a_cab.imageset/goer_call_a_cab.png b/PartyTonight/Assets.xcassets/goer_call_a_cab.imageset/goer_call_a_cab.png new file mode 100644 index 0000000..051cee0 Binary files /dev/null and b/PartyTonight/Assets.xcassets/goer_call_a_cab.imageset/goer_call_a_cab.png differ diff --git a/PartyTonight/Assets.xcassets/goer_call_a_cab.imageset/goer_call_a_cab@2x.png b/PartyTonight/Assets.xcassets/goer_call_a_cab.imageset/goer_call_a_cab@2x.png new file mode 100644 index 0000000..50edbad Binary files /dev/null and b/PartyTonight/Assets.xcassets/goer_call_a_cab.imageset/goer_call_a_cab@2x.png differ diff --git a/PartyTonight/Assets.xcassets/goer_call_a_cab.imageset/goer_call_a_cab@3x.png b/PartyTonight/Assets.xcassets/goer_call_a_cab.imageset/goer_call_a_cab@3x.png new file mode 100644 index 0000000..df5b203 Binary files /dev/null and b/PartyTonight/Assets.xcassets/goer_call_a_cab.imageset/goer_call_a_cab@3x.png differ diff --git a/PartyTonight/Assets.xcassets/promoter_bottles.imageset/Contents.json b/PartyTonight/Assets.xcassets/promoter_bottles.imageset/Contents.json new file mode 100644 index 0000000..9324ab8 --- /dev/null +++ b/PartyTonight/Assets.xcassets/promoter_bottles.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "promoter_bottles.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "promoter_bottles@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "promoter_bottles@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/PartyTonight/Assets.xcassets/promoter_bottles.imageset/promoter_bottles.png b/PartyTonight/Assets.xcassets/promoter_bottles.imageset/promoter_bottles.png new file mode 100644 index 0000000..659aa8f Binary files /dev/null and b/PartyTonight/Assets.xcassets/promoter_bottles.imageset/promoter_bottles.png differ diff --git a/PartyTonight/Assets.xcassets/promoter_bottles.imageset/promoter_bottles@2x.png b/PartyTonight/Assets.xcassets/promoter_bottles.imageset/promoter_bottles@2x.png new file mode 100644 index 0000000..0e2b2f6 Binary files /dev/null and b/PartyTonight/Assets.xcassets/promoter_bottles.imageset/promoter_bottles@2x.png differ diff --git a/PartyTonight/Assets.xcassets/promoter_bottles.imageset/promoter_bottles@3x.png b/PartyTonight/Assets.xcassets/promoter_bottles.imageset/promoter_bottles@3x.png new file mode 100644 index 0000000..02da543 Binary files /dev/null and b/PartyTonight/Assets.xcassets/promoter_bottles.imageset/promoter_bottles@3x.png differ diff --git a/PartyTonight/Assets.xcassets/promoter_money_total.imageset/Contents.json b/PartyTonight/Assets.xcassets/promoter_money_total.imageset/Contents.json new file mode 100644 index 0000000..845c444 --- /dev/null +++ b/PartyTonight/Assets.xcassets/promoter_money_total.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "promoter_money_total.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "promoter_money_total@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "promoter_money_total@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/PartyTonight/Assets.xcassets/promoter_money_total.imageset/promoter_money_total.png b/PartyTonight/Assets.xcassets/promoter_money_total.imageset/promoter_money_total.png new file mode 100644 index 0000000..0ec1f6d Binary files /dev/null and b/PartyTonight/Assets.xcassets/promoter_money_total.imageset/promoter_money_total.png differ diff --git a/PartyTonight/Assets.xcassets/promoter_money_total.imageset/promoter_money_total@2x.png b/PartyTonight/Assets.xcassets/promoter_money_total.imageset/promoter_money_total@2x.png new file mode 100644 index 0000000..d021434 Binary files /dev/null and b/PartyTonight/Assets.xcassets/promoter_money_total.imageset/promoter_money_total@2x.png differ diff --git a/PartyTonight/Assets.xcassets/promoter_money_total.imageset/promoter_money_total@3x.png b/PartyTonight/Assets.xcassets/promoter_money_total.imageset/promoter_money_total@3x.png new file mode 100644 index 0000000..c3ea668 Binary files /dev/null and b/PartyTonight/Assets.xcassets/promoter_money_total.imageset/promoter_money_total@3x.png differ diff --git a/PartyTonight/Assets.xcassets/promoter_my_events.imageset/Contents.json b/PartyTonight/Assets.xcassets/promoter_my_events.imageset/Contents.json new file mode 100644 index 0000000..0f7a7ad --- /dev/null +++ b/PartyTonight/Assets.xcassets/promoter_my_events.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "promoter_my_events.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "promoter_my_events@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "promoter_my_events@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/PartyTonight/Assets.xcassets/promoter_my_events.imageset/promoter_my_events.png b/PartyTonight/Assets.xcassets/promoter_my_events.imageset/promoter_my_events.png new file mode 100644 index 0000000..75d9e3a Binary files /dev/null and b/PartyTonight/Assets.xcassets/promoter_my_events.imageset/promoter_my_events.png differ diff --git a/PartyTonight/Assets.xcassets/promoter_my_events.imageset/promoter_my_events@2x.png b/PartyTonight/Assets.xcassets/promoter_my_events.imageset/promoter_my_events@2x.png new file mode 100644 index 0000000..d0e407d Binary files /dev/null and b/PartyTonight/Assets.xcassets/promoter_my_events.imageset/promoter_my_events@2x.png differ diff --git a/PartyTonight/Assets.xcassets/promoter_my_events.imageset/promoter_my_events@3x.png b/PartyTonight/Assets.xcassets/promoter_my_events.imageset/promoter_my_events@3x.png new file mode 100644 index 0000000..b018c66 Binary files /dev/null and b/PartyTonight/Assets.xcassets/promoter_my_events.imageset/promoter_my_events@3x.png differ diff --git a/PartyTonight/Assets.xcassets/promoter_new_event.imageset/Contents.json b/PartyTonight/Assets.xcassets/promoter_new_event.imageset/Contents.json new file mode 100644 index 0000000..5ac8345 --- /dev/null +++ b/PartyTonight/Assets.xcassets/promoter_new_event.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "promoter_new_event.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "promoter_new_event@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "promoter_new_event@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/PartyTonight/Assets.xcassets/promoter_new_event.imageset/promoter_new_event.png b/PartyTonight/Assets.xcassets/promoter_new_event.imageset/promoter_new_event.png new file mode 100644 index 0000000..d661ea5 Binary files /dev/null and b/PartyTonight/Assets.xcassets/promoter_new_event.imageset/promoter_new_event.png differ diff --git a/PartyTonight/Assets.xcassets/promoter_new_event.imageset/promoter_new_event@2x.png b/PartyTonight/Assets.xcassets/promoter_new_event.imageset/promoter_new_event@2x.png new file mode 100644 index 0000000..07df21e Binary files /dev/null and b/PartyTonight/Assets.xcassets/promoter_new_event.imageset/promoter_new_event@2x.png differ diff --git a/PartyTonight/Assets.xcassets/promoter_new_event.imageset/promoter_new_event@3x.png b/PartyTonight/Assets.xcassets/promoter_new_event.imageset/promoter_new_event@3x.png new file mode 100644 index 0000000..0672331 Binary files /dev/null and b/PartyTonight/Assets.xcassets/promoter_new_event.imageset/promoter_new_event@3x.png differ diff --git a/PartyTonight/Assets.xcassets/promoter_tables.imageset/Contents.json b/PartyTonight/Assets.xcassets/promoter_tables.imageset/Contents.json new file mode 100644 index 0000000..5ef1035 --- /dev/null +++ b/PartyTonight/Assets.xcassets/promoter_tables.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "promoter_tables.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "promoter_tables@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "promoter_tables@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/PartyTonight/Assets.xcassets/promoter_tables.imageset/promoter_tables.png b/PartyTonight/Assets.xcassets/promoter_tables.imageset/promoter_tables.png new file mode 100644 index 0000000..31ace5a Binary files /dev/null and b/PartyTonight/Assets.xcassets/promoter_tables.imageset/promoter_tables.png differ diff --git a/PartyTonight/Assets.xcassets/promoter_tables.imageset/promoter_tables@2x.png b/PartyTonight/Assets.xcassets/promoter_tables.imageset/promoter_tables@2x.png new file mode 100644 index 0000000..e8fdbb9 Binary files /dev/null and b/PartyTonight/Assets.xcassets/promoter_tables.imageset/promoter_tables@2x.png differ diff --git a/PartyTonight/Assets.xcassets/promoter_tables.imageset/promoter_tables@3x.png b/PartyTonight/Assets.xcassets/promoter_tables.imageset/promoter_tables@3x.png new file mode 100644 index 0000000..c6cf653 Binary files /dev/null and b/PartyTonight/Assets.xcassets/promoter_tables.imageset/promoter_tables@3x.png differ diff --git a/PartyTonight/Base.lproj/Main.storyboard b/PartyTonight/Base.lproj/Main.storyboard index e3663f0..6f8b6b8 100644 --- a/PartyTonight/Base.lproj/Main.storyboard +++ b/PartyTonight/Base.lproj/Main.storyboard @@ -1,8 +1,11 @@ - + + + + - + @@ -33,8 +36,11 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -238,10 +1386,14 @@ - + + + + + @@ -251,6 +1403,7 @@ + @@ -260,15 +1413,17 @@ + - + + @@ -278,6 +1433,7 @@ + @@ -287,6 +1443,7 @@ + @@ -298,27 +1455,33 @@ + - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PartyTonight/Controllers/Authorization/GoerLoginViewController.swift b/PartyTonight/Controllers/Authorization/GoerLoginViewController.swift new file mode 100644 index 0000000..c3c51fe --- /dev/null +++ b/PartyTonight/Controllers/Authorization/GoerLoginViewController.swift @@ -0,0 +1,55 @@ +// +// GoerLoginViewController.swift +// PartyTonight +// +// Created by Igor Kasyanenko on 18.11.16. +// Copyright © 2016 Igor Kasyanenko. All rights reserved. +// + +import UIKit + +class GoerLoginViewController: UIViewController { + + + @IBOutlet weak var loginTextField: UITextField! + @IBOutlet weak var passwordTextField: UITextField! + @IBOutlet weak var loginButton: UIButton! + + + + override func viewDidLoad() { + super.viewDidLoad() + + setTextFieldInsets() + // Do any additional setup after loading the view. + } + + override func didReceiveMemoryWarning() { + super.didReceiveMemoryWarning() + // Dispose of any resources that can be recreated. + } + + func setTextFieldInsets(){ + loginTextField.leftView = UIView(frame:CGRect(x: 0, y: 0, width: 60, height: 30)) + loginTextField.leftViewMode = UITextFieldViewMode.always + loginTextField.attributedPlaceholder = NSAttributedString(string:"E-mail", + attributes:[NSForegroundColorAttributeName: UIColor.white, NSFontAttributeName: UIFont(name: "Aguda-Regular2", size: 18.0)! ]) + + passwordTextField.leftView = UIView(frame:CGRect(x: 0, y: 0, width: 60, height: 30)) + passwordTextField.leftViewMode = UITextFieldViewMode.always + passwordTextField.attributedPlaceholder = NSAttributedString(string:"Password", + attributes:[NSForegroundColorAttributeName: UIColor.white, NSFontAttributeName: UIFont(name: "Aguda-Regular2", size: 18.0)! ]) + + } + + /* + // MARK: - Navigation + + // In a storyboard-based application, you will often want to do a little preparation before navigation + override func prepare(for segue: UIStoryboardSegue, sender: Any?) { + // Get the new view controller using segue.destinationViewController. + // Pass the selected object to the new view controller. + } + */ + +} diff --git a/PartyTonight/Controllers/Authorization/GoerRegistrationViewController.swift b/PartyTonight/Controllers/Authorization/GoerRegistrationViewController.swift new file mode 100644 index 0000000..5658804 --- /dev/null +++ b/PartyTonight/Controllers/Authorization/GoerRegistrationViewController.swift @@ -0,0 +1,35 @@ +// +// GoerRegistrationViewController.swift +// PartyTonight +// +// Created by Igor Kasyanenko on 18.11.16. +// Copyright © 2016 Igor Kasyanenko. All rights reserved. +// + +import UIKit + +class GoerRegistrationViewController: UIViewController { + + override func viewDidLoad() { + super.viewDidLoad() + + // Do any additional setup after loading the view. + } + + override func didReceiveMemoryWarning() { + super.didReceiveMemoryWarning() + // Dispose of any resources that can be recreated. + } + + + /* + // MARK: - Navigation + + // In a storyboard-based application, you will often want to do a little preparation before navigation + override func prepare(for segue: UIStoryboardSegue, sender: Any?) { + // Get the new view controller using segue.destinationViewController. + // Pass the selected object to the new view controller. + } + */ + +} diff --git a/PartyTonight/Controllers/Authorization/PromoterLoginViewController.swift b/PartyTonight/Controllers/Authorization/PromoterLoginViewController.swift index ba06de2..8c7cf9a 100644 --- a/PartyTonight/Controllers/Authorization/PromoterLoginViewController.swift +++ b/PartyTonight/Controllers/Authorization/PromoterLoginViewController.swift @@ -19,6 +19,8 @@ class PromoterLoginViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() + //DefaultWireframe.presentAlert("test") + let viewModel = LoginViewModel( input: ( email: loginTextField.rx.text.orEmpty.asObservable(), @@ -48,10 +50,18 @@ class PromoterLoginViewController: UIViewController { func addBindings(to viewModel: LoginViewModel) { - //test - viewModel.userToken - .subscribe(onNext: { (user) in - print("User signed: \(user)") + viewModel.userToken.subscribe(onNext: { (token) in + switch token { + case .Success(let token): + print("User signed: \(token.token)") + APIManager.sharedAPI.userToken = token + self.goToPromoterScreen() + case .Failure(let error): + print(error) + if let e = error as? APIError{ + DefaultWireframe.presentAlert(e.description) + } + } }, onError: { (error) in print("Caught an error: \(error)") }, onCompleted:{ @@ -60,6 +70,14 @@ class PromoterLoginViewController: UIViewController { .addDisposableTo(disposeBag) } + private func goToPromoterScreen(){ + if let promoterNavVC = self.storyboard?.instantiateViewController(withIdentifier: "PromoterNavVC") as? PromoterNavController{ + present(promoterNavVC, animated: true, completion: nil) + } + } + + + override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. diff --git a/PartyTonight/Controllers/Authorization/PromoterRegistrationViewController.swift b/PartyTonight/Controllers/Authorization/PromoterRegistrationViewController.swift index 15291f1..be1ed92 100644 --- a/PartyTonight/Controllers/Authorization/PromoterRegistrationViewController.swift +++ b/PartyTonight/Controllers/Authorization/PromoterRegistrationViewController.swift @@ -55,15 +55,45 @@ class PromoterRegistrationViewController: UIViewController { func addBindings(to viewModel: RegistrationViewModel) { //test - viewModel.userToken - .subscribe(onNext: { (user) in - print("User registered: \(user)") - }, onError: { (error) in - print("Caught an error: \(error)") - } ) + viewModel.userToken.subscribe(onNext: { (token) in + + switch token { + case .Success(let token): + print("User registered: \(token)") + APIManager.sharedAPI.userToken = token + self.goToPromoterScreen() + case .Failure(let error): + + if let e = error as? APIError{ + DefaultWireframe.presentAlert(e.description) + } + + // switch error { + // case APIError.Username(let message): + // self.showError(message, on: self.usernameInput) + // + // case LoginError.Password(let message): + // self.showError(message, on: self.passwordInput) + // + // default: + // self.showError("Unknown error") + // } + } + }, onError: { (error) in + print("Caught an error: \(error)") + }, onCompleted:{ + print("completed") + }) .addDisposableTo(disposeBag) + + } + private func goToPromoterScreen(){ + if let promoterNavVC = self.storyboard?.instantiateViewController(withIdentifier: "PromoterNavVC") as? PromoterNavController{ + present(promoterNavVC, animated: true, completion: nil) + } + } func setTextFieldInsets(){ nameTextField.attributedPlaceholder = NSAttributedString(string:"Name", attributes:[NSForegroundColorAttributeName: UIColor.white, NSFontAttributeName: UIFont(name: "Aguda-Regular2", size: 18.0)! ]) diff --git a/PartyTonight/Controllers/Map/ChooseLocationViewController.swift b/PartyTonight/Controllers/Map/ChooseLocationViewController.swift new file mode 100644 index 0000000..4f4491b --- /dev/null +++ b/PartyTonight/Controllers/Map/ChooseLocationViewController.swift @@ -0,0 +1,121 @@ +// +// ChooseLocationViewController.swift +// PartyTonight +// +// Created by Igor Kasyanenko on 15.11.16. +// Copyright © 2016 Igor Kasyanenko. All rights reserved. +// + +import UIKit +import MapKit + +protocol DataEnteredDelegate: class { + func userDidChooseLocation(info: String) + func userDidChooseDateTime(date: Date) +} + +class ChooseLocationViewController: UIViewController { + @IBOutlet weak var mapView: MKMapView! + let annotation = MKPointAnnotation() + weak var delegate: DataEnteredDelegate? = nil + var address:String? + + @IBAction func doneButtonTouched(_ sender: UIBarButtonItem) { + // call this method on whichever class implements our delegate protocol + if let location = address{ + delegate?.userDidChooseLocation(info: location); + _ = self.navigationController?.popViewController(animated: true) + } + // go back to the previous view controller + + } + + override func viewDidLoad() { + super.viewDidLoad() + + let longPressRecogniser = UILongPressGestureRecognizer(target: self, action: #selector(self.handleLongPress(getstureRecognizer:))) + + mapView.addAnnotation(annotation) + longPressRecogniser.minimumPressDuration = 1.0 + mapView.addGestureRecognizer(longPressRecogniser) + // Do any additional setup after loading the view. + } + + + func handleLongPress(getstureRecognizer : UIGestureRecognizer){ + if getstureRecognizer.state != .began { return } + + address = nil + let touchPoint = getstureRecognizer.location(in: self.mapView) + let touchMapCoordinate = mapView.convert(touchPoint, toCoordinateFrom: mapView) + + + annotation.coordinate = touchMapCoordinate + + // Add below code to get address for touch coordinates. + + let geoCoder = CLGeocoder() + let location = CLLocation(latitude: touchMapCoordinate.latitude, longitude: touchMapCoordinate.longitude) + + geoCoder.reverseGeocodeLocation(location, completionHandler: { (placemarks, error) -> Void in + + // Place details + let placeMark: CLPlacemark! = placemarks?[0] +// +// // Address dictionary +// print(placeMark.addressDictionary) +// +// // Location name +// if let locationName = placeMark.addressDictionary!["Name"] as? NSString { +// print(locationName) +// } +// +// // Street address +// if let street = placeMark.addressDictionary!["Thoroughfare"] as? NSString { +// print(street) +// } +// +// // City +// if let city = placeMark.addressDictionary!["City"] as? NSString { +// print(city) +// } +// +// // Zip code +// if let zip = placeMark.addressDictionary!["ZIP"] as? NSString { +// print(zip) +// } +// +// // Country +// if let country = placeMark.addressDictionary!["Country"] as? NSString { +// print(country) +// } +// + // FormattedAddressLines + if let formattedAddressLines = placeMark.addressDictionary?["FormattedAddressLines"] as? [String] { + self.address = formattedAddressLines.joined(separator: ", ") + } + + + }) + + + + } + + override func didReceiveMemoryWarning() { + super.didReceiveMemoryWarning() + // Dispose of any resources that can be recreated. + } + + + /* + // MARK: - Navigation + + // In a storyboard-based application, you will often want to do a little preparation before navigation + override func prepare(for segue: UIStoryboardSegue, sender: Any?) { + // Get the new view controller using segue.destinationViewController. + // Pass the selected object to the new view controller. + } + */ + +} diff --git a/PartyTonight/Controllers/Navigation/GoerNavController.swift b/PartyTonight/Controllers/Navigation/GoerNavController.swift new file mode 100644 index 0000000..41b2fa1 --- /dev/null +++ b/PartyTonight/Controllers/Navigation/GoerNavController.swift @@ -0,0 +1,37 @@ +// +// GoerNavController.swift +// PartyTonight +// +// Created by Igor Kasyanenko on 18.11.16. +// Copyright © 2016 Igor Kasyanenko. All rights reserved. +// + +import UIKit + +class GoerNavController: UINavigationController { + + override func viewDidLoad() { + super.viewDidLoad() + self.navigationBar.setBackgroundImage(UIImage(), for: .default) + self.navigationBar.shadowImage = UIImage() + self.navigationBar.isTranslucent = true + // Do any additional setup after loading the view. + } + + override func didReceiveMemoryWarning() { + super.didReceiveMemoryWarning() + // Dispose of any resources that can be recreated. + } + + + /* + // MARK: - Navigation + + // In a storyboard-based application, you will often want to do a little preparation before navigation + override func prepare(for segue: UIStoryboardSegue, sender: Any?) { + // Get the new view controller using segue.destinationViewController. + // Pass the selected object to the new view controller. + } + */ + +} diff --git a/PartyTonight/Controllers/Navigation/PromoterNavController.swift b/PartyTonight/Controllers/Navigation/PromoterNavController.swift new file mode 100644 index 0000000..f6d077b --- /dev/null +++ b/PartyTonight/Controllers/Navigation/PromoterNavController.swift @@ -0,0 +1,38 @@ +// +// PromoterNavController.swift +// PartyTonight +// +// Created by Igor Kasyanenko on 08.11.16. +// Copyright © 2016 Igor Kasyanenko. All rights reserved. +// + +import UIKit + +class PromoterNavController: UINavigationController { + + override func viewDidLoad() { + super.viewDidLoad() + self.navigationBar.setBackgroundImage(UIImage(), for: .default) + self.navigationBar.shadowImage = UIImage() + self.navigationBar.isTranslucent = true + // Do any additional setup after loading the view. + } + + override func didReceiveMemoryWarning() { + super.didReceiveMemoryWarning() + + // Dispose of any resources that can be recreated. + } + + + /* + // MARK: - Navigation + + // In a storyboard-based application, you will often want to do a little preparation before navigation + override func prepare(for segue: UIStoryboardSegue, sender: Any?) { + // Get the new view controller using segue.destinationViewController. + // Pass the selected object to the new view controller. + } + */ + +} diff --git a/PartyTonight/Controllers/Promoter/CreateEventViewController.swift b/PartyTonight/Controllers/Promoter/CreateEventViewController.swift new file mode 100644 index 0000000..fb1da9a --- /dev/null +++ b/PartyTonight/Controllers/Promoter/CreateEventViewController.swift @@ -0,0 +1,136 @@ +// +// CreateEventViewController.swift +// PartyTonight +// +// Created by Igor Kasyanenko on 11.11.16. +// Copyright © 2016 Igor Kasyanenko. All rights reserved. +// + +import UIKit +import RxSwift +import RxCocoa +class CreateEventViewController: UIViewController, DataEnteredDelegate { + @IBAction func createTouched(_ sender: UIButton) { + + //print("location! \(locationTextField.text)") + } + + @IBOutlet weak var uploadPhotosButton: UIButton! + @IBOutlet weak var bottlesStackView: UIStackView! + @IBOutlet weak var addMoreLiquorTypeButton: UIButton! + @IBOutlet weak var addMoreTableTypeButton: UIButton! + @IBOutlet weak var tablesStackView: UIStackView! + + @IBOutlet weak var clubNameTextField: UITextField! + + @IBOutlet weak var dateAndTimeTextField: UITextField! + + @IBOutlet weak var locationTextField: UITextField! + + @IBOutlet weak var clubCapacityTextField: UITextField! + + @IBOutlet weak var ticketsPriceTextView: UITextField! + + @IBOutlet weak var partyNameTextView: UITextField! + + @IBOutlet weak var createEventButton: UIButton! + + let disposeBag = DisposeBag(); + + override func viewDidLoad() { + super.viewDidLoad() + + setTextFieldPlaceholders() + + + locationTextField.delegate = self; + dateAndTimeTextField.delegate = self; + + let rxTables = addMoreTableTypeButton.rx.tap.asObservable().map{ (_) -> Observable in + let tableView = TypePriceQuantityView(frame: CGRect(x: 0, y: 0, width: 144, height: 200)) + self.tablesStackView.addArrangedSubview(tableView); + let type = tableView.typeTextField.rx.text.orEmpty.asObservable() + let price = tableView.priceTextField.rx.text.orEmpty.asObservable() + let quantity = tableView.quantityTextField.rx.text.orEmpty.asObservable() + let tableEntity = Observable.combineLatest(type, price, quantity) { ($0, $1, $2)}.flatMap({ (type, price, quantity) -> Observable
in + return Observable.just(Table(price: price,type: type,available: Int(quantity))); + }) + return tableEntity; + } + + let rxBottles = addMoreLiquorTypeButton.rx.tap.asObservable().map{ (_) -> Observable in + let tableView = TypePriceQuantityView(frame: CGRect(x: 0, y: 0, width: 144, height: 200)) + self.bottlesStackView.addArrangedSubview(tableView); + let type = tableView.typeTextField.rx.text.orEmpty.asObservable() + let price = tableView.priceTextField.rx.text.orEmpty.asObservable() + let quantity = tableView.quantityTextField.rx.text.orEmpty.asObservable() + let bottleEntity = Observable.combineLatest(type, price, quantity) { ($0, $1, $2)}.flatMap({ (type, price, quantity) -> Observable in + return Observable.just(Bottle(price: price,type: type,available: Int(quantity))); + }) + return bottleEntity; + } + + // locationTextField.rx.te + + let viewModel = CreateEventViewModel(input: (clubName: clubNameTextField.rx.text.orEmpty.asObservable(), dateTime: dateAndTimeTextField.rx.text.orEmpty.asObservable(), location: locationTextField.rx.text.orEmpty.asObservable(), uploadPhotosTaps: uploadPhotosButton.rx.tap.asObservable(), clubCapacity: clubCapacityTextField.rx.text.orEmpty.asObservable(), ticketsPrice: ticketsPriceTextView.rx.text.orEmpty.asObservable(), partyName: partyNameTextView.rx.text.orEmpty.asObservable(), bottles: rxBottles, tables: rxTables,createEventTaps: createEventButton.rx.tap.asObservable()), API: APIManager.sharedAPI); + + + + + viewModel.eventResponse.subscribe (onNext: { (code) in + switch code { + case .Success(let code): + print("Created: \(code)") + + self.goToPromoterScreen() + case .Failure(let error): + print(error) + if let e = error as? APIError{ + DefaultWireframe.presentAlert(e.description) + } + } + }).addDisposableTo(disposeBag) + + + + + } + + func goToPromoterScreen() { + _ = self.navigationController?.popViewController(animated: true) + } + + override func didReceiveMemoryWarning() { + super.didReceiveMemoryWarning() + // Dispose of any resources that can be recreated. + } + + + + + + func setTextFieldPlaceholders(){ + clubNameTextField.attributedPlaceholder = NSAttributedString(string:"Club Name", attributes:[NSForegroundColorAttributeName: UIColor.white, NSFontAttributeName: UIFont(name: "Aguda-Regular2", size: 18.0)! ]) + + dateAndTimeTextField.attributedPlaceholder = NSAttributedString(string:"Date and Time", attributes:[NSForegroundColorAttributeName: UIColor.white, NSFontAttributeName: UIFont(name: "Aguda-Regular2", size: 18.0)! ]) + + locationTextField.attributedPlaceholder = NSAttributedString(string:"Location", attributes:[NSForegroundColorAttributeName: UIColor.white, NSFontAttributeName: UIFont(name: "Aguda-Regular2", size: 18.0)! ]) + + clubCapacityTextField.attributedPlaceholder = NSAttributedString(string:"Club capacity", attributes:[NSForegroundColorAttributeName: UIColor.white, NSFontAttributeName: UIFont(name: "Aguda-Regular2", size: 18.0)! ]) + + ticketsPriceTextView.attributedPlaceholder = NSAttributedString(string:"Tickets price", attributes:[NSForegroundColorAttributeName: UIColor.white, NSFontAttributeName: UIFont(name: "Aguda-Regular2", size: 18.0)! ]) + + partyNameTextView.attributedPlaceholder = NSAttributedString(string:"Party name", attributes:[NSForegroundColorAttributeName: UIColor.white, NSFontAttributeName: UIFont(name: "Aguda-Regular2", size: 18.0)! ]) + } + + /* + // MARK: - Navigation + + // In a storyboard-based application, you will often want to do a little preparation before navigation + override func prepare(for segue: UIStoryboardSegue, sender: Any?) { + // Get the new view controller using segue.destinationViewController. + // Pass the selected object to the new view controller. + } + */ + +} diff --git a/PartyTonight/Controllers/Promoter/DateTimePickerViewController.swift b/PartyTonight/Controllers/Promoter/DateTimePickerViewController.swift new file mode 100644 index 0000000..e4b2786 --- /dev/null +++ b/PartyTonight/Controllers/Promoter/DateTimePickerViewController.swift @@ -0,0 +1,47 @@ +// +// DateTimePickerViewController.swift +// PartyTonight +// +// Created by Igor Kasyanenko on 16.11.16. +// Copyright © 2016 Igor Kasyanenko. All rights reserved. +// + +import UIKit + +class DateTimePickerViewController: UIViewController { + @IBOutlet weak var datePicker: UIDatePicker! + + @IBAction func applyButtonTouched(_ sender: UIButton) { + delegate?.userDidChooseDateTime(date: datePicker.date) + self.dismiss(animated: true, completion: nil) + } + + + + + + + weak var delegate: DataEnteredDelegate? = nil + + override func viewDidLoad() { + super.viewDidLoad() + datePicker.minimumDate = Date(); + } + + override func didReceiveMemoryWarning() { + super.didReceiveMemoryWarning() + // Dispose of any resources that can be recreated. + } + + + /* + // MARK: - Navigation + + // In a storyboard-based application, you will often want to do a little preparation before navigation + override func prepare(for segue: UIStoryboardSegue, sender: Any?) { + // Get the new view controller using segue.destinationViewController. + // Pass the selected object to the new view controller. + } + */ + +} diff --git a/PartyTonight/Controllers/Promoter/Extentions/CreateEventViewController+Popover.swift b/PartyTonight/Controllers/Promoter/Extentions/CreateEventViewController+Popover.swift new file mode 100644 index 0000000..925ea53 --- /dev/null +++ b/PartyTonight/Controllers/Promoter/Extentions/CreateEventViewController+Popover.swift @@ -0,0 +1,19 @@ +// +// CreateEventViewController+Popover.swift +// PartyTonight +// +// Created by Igor Kasyanenko on 16.11.16. +// Copyright © 2016 Igor Kasyanenko. All rights reserved. +// + +import Foundation +import UIKit + +extension CreateEventViewController: UIPopoverPresentationControllerDelegate{ + func adaptivePresentationStyle(for controller: UIPresentationController) -> UIModalPresentationStyle { + return UIModalPresentationStyle.none + } + + + +} diff --git a/PartyTonight/Controllers/Promoter/Extentions/CreateEventViewController+TextField.swift b/PartyTonight/Controllers/Promoter/Extentions/CreateEventViewController+TextField.swift new file mode 100644 index 0000000..cc5cef8 --- /dev/null +++ b/PartyTonight/Controllers/Promoter/Extentions/CreateEventViewController+TextField.swift @@ -0,0 +1,62 @@ +// +// CreateEventViewController+TextField.swift +// PartyTonight +// +// Created by Igor Kasyanenko on 15.11.16. +// Copyright © 2016 Igor Kasyanenko. All rights reserved. +// + +import Foundation +import UIKit +extension CreateEventViewController: UITextFieldDelegate{ + func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool { + switch (textField) { + case locationTextField: + performSegue(withIdentifier: "ChooseLocationSegue", sender: textField) + + case dateAndTimeTextField: + performSegue(withIdentifier: "createEventDatetimePopover", sender: textField) + + default: + return true; + + } + + return false; + } + +// override func prepare(for segue: UIStoryboardSegue, sender: Any?) { +// if let mapVC = segue.destination as? ChooseLocationViewController{ +// mapVC.delegate = self; +// } +// } + + override func prepare(for segue: UIStoryboardSegue, sender: Any?) { + //print("prepare") + switch (segue.identifier) { + case "createEventDatetimePopover"?: + if let controller = segue.destination as? DateTimePickerViewController { + controller.popoverPresentationController!.delegate = self + controller.preferredContentSize = CGSize(width: 300, height: 300) + controller.delegate = self; + } + default: + if let mapVC = segue.destination as? ChooseLocationViewController{ + mapVC.delegate = self; + } + } + } + + + func userDidChooseLocation(info: String){ + locationTextField.text = info; + //for rx + locationTextField.sendActions(for: .editingDidBegin) + } + + func userDidChooseDateTime(date: Date) { + dateAndTimeTextField.text = date.string(format: "EEEE, d MMM yyyy HH:mm") + dateAndTimeTextField.sendActions(for: .editingDidBegin) + } + +} diff --git a/PartyTonight/Controllers/Promoter/Extentions/PromoterEventsViewController+CollectionView.swift b/PartyTonight/Controllers/Promoter/Extentions/PromoterEventsViewController+CollectionView.swift new file mode 100644 index 0000000..0836d31 --- /dev/null +++ b/PartyTonight/Controllers/Promoter/Extentions/PromoterEventsViewController+CollectionView.swift @@ -0,0 +1,28 @@ +// +// PromoterEventsViewController+CollectionView.swift +// PartyTonight +// +// Created by Igor Kasyanenko on 11.11.16. +// Copyright © 2016 Igor Kasyanenko. All rights reserved. +// + +import Foundation +import UIKit +extension PromoterEventsViewController:UICollectionViewDelegate, UICollectionViewDataSource { + + + func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { + print("nothing"); + } + + func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { + let cell = collectionView.dequeueReusableCell(withReuseIdentifier: cellName, for: indexPath) as! EventCollectionViewCell; + return cell; + } + + func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { + return 10; + } + + +} diff --git a/PartyTonight/Controllers/Promoter/PromoterBottlesViewController.swift b/PartyTonight/Controllers/Promoter/PromoterBottlesViewController.swift new file mode 100644 index 0000000..76cdf6b --- /dev/null +++ b/PartyTonight/Controllers/Promoter/PromoterBottlesViewController.swift @@ -0,0 +1,95 @@ +// +// PromoterBottlesViewController.swift +// PartyTonight +// +// Created by Igor Kasyanenko on 19.11.16. +// Copyright © 2016 Igor Kasyanenko. All rights reserved. +// + +import UIKit + +class PromoterBottlesViewController: UITableViewController { + + override func viewDidLoad() { + super.viewDidLoad() + + let backgroundImage = UIImage(named: "bg_blur") + let imageView = UIImageView(image: backgroundImage) + self.tableView.backgroundView = imageView + imageView.contentMode = .scaleAspectFill + } + + override func didReceiveMemoryWarning() { + super.didReceiveMemoryWarning() + // Dispose of any resources that can be recreated. + } + + // MARK: - Table view data source + + override func numberOfSections(in tableView: UITableView) -> Int { + // #warning Incomplete implementation, return the number of sections + return 1 + } + + override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + // #warning Incomplete implementation, return the number of rows + return 20 + } + + + + + override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { + let cell = tableView.dequeueReusableCell(withIdentifier: "BottlesTablesCell", for: indexPath) as! BottlesTablesCell; + + cell.titleLabel.text = "Hennessy VSOP"; + return cell + } + + + /* + // Override to support conditional editing of the table view. + override func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool { + // Return false if you do not want the specified item to be editable. + return true + } + */ + + /* + // Override to support editing the table view. + override func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) { + if editingStyle == .delete { + // Delete the row from the data source + tableView.deleteRows(at: [indexPath], with: .fade) + } else if editingStyle == .insert { + // Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view + } + } + */ + + /* + // Override to support rearranging the table view. + override func tableView(_ tableView: UITableView, moveRowAt fromIndexPath: IndexPath, to: IndexPath) { + + } + */ + + /* + // Override to support conditional rearranging of the table view. + override func tableView(_ tableView: UITableView, canMoveRowAt indexPath: IndexPath) -> Bool { + // Return false if you do not want the item to be re-orderable. + return true + } + */ + + /* + // MARK: - Navigation + + // In a storyboard-based application, you will often want to do a little preparation before navigation + override func prepare(for segue: UIStoryboardSegue, sender: Any?) { + // Get the new view controller using segue.destinationViewController. + // Pass the selected object to the new view controller. + } + */ + +} diff --git a/PartyTonight/Controllers/Promoter/PromoterEventTableViewController.swift b/PartyTonight/Controllers/Promoter/PromoterEventTableViewController.swift new file mode 100644 index 0000000..97d4b37 --- /dev/null +++ b/PartyTonight/Controllers/Promoter/PromoterEventTableViewController.swift @@ -0,0 +1,104 @@ +// +// PromoterEventTableViewController.swift +// PartyTonight +// +// Created by Igor Kasyanenko on 18.11.16. +// Copyright © 2016 Igor Kasyanenko. All rights reserved. +// + +import UIKit + +class PromoterEventTableViewController: UITableViewController { + + override func viewDidLoad() { + super.viewDidLoad() + + // Add a background view to the table view + let backgroundImage = UIImage(named: "bg_blur") + let imageView = UIImageView(image: backgroundImage) + self.tableView.backgroundView = imageView + imageView.contentMode = .scaleAspectFill + + // Uncomment the following line to preserve selection between presentations + // self.clearsSelectionOnViewWillAppear = false + + // Uncomment the following line to display an Edit button in the navigation bar for this view controller. + // self.navigationItem.rightBarButtonItem = self.editButtonItem() + } + + + + + override func didReceiveMemoryWarning() { + super.didReceiveMemoryWarning() + // Dispose of any resources that can be recreated. + } + +// // MARK: - Table view data source +// +// override func numberOfSections(in tableView: UITableView) -> Int { +// // #warning Incomplete implementation, return the number of sections +// return 0 +// } +// +// override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { +// // #warning Incomplete implementation, return the number of rows +// return 0 +// } + + /* + override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { + let cell = tableView.dequeueReusableCell(withIdentifier: "reuseIdentifier", for: indexPath) + + // Configure the cell... + + return cell + } + */ + + /* + // Override to support conditional editing of the table view. + override func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool { + // Return false if you do not want the specified item to be editable. + return true + } + */ + + /* + // Override to support editing the table view. + override func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) { + if editingStyle == .delete { + // Delete the row from the data source + tableView.deleteRows(at: [indexPath], with: .fade) + } else if editingStyle == .insert { + // Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view + } + } + */ + + /* + // Override to support rearranging the table view. + override func tableView(_ tableView: UITableView, moveRowAt fromIndexPath: IndexPath, to: IndexPath) { + + } + */ + + /* + // Override to support conditional rearranging of the table view. + override func tableView(_ tableView: UITableView, canMoveRowAt indexPath: IndexPath) -> Bool { + // Return false if you do not want the item to be re-orderable. + return true + } + */ + + /* + // MARK: - Navigation + + // In a storyboard-based application, you will often want to do a little preparation before navigation + override func prepare(for segue: UIStoryboardSegue, sender: Any?) { + // Get the new view controller using segue.destinationViewController. + // Pass the selected object to the new view controller. + } + */ + +} diff --git a/PartyTonight/Controllers/Promoter/PromoterEventsViewController.swift b/PartyTonight/Controllers/Promoter/PromoterEventsViewController.swift new file mode 100644 index 0000000..23ab492 --- /dev/null +++ b/PartyTonight/Controllers/Promoter/PromoterEventsViewController.swift @@ -0,0 +1,62 @@ +// +// PromoterEventsViewController.swift +// PartyTonight +// +// Created by Igor Kasyanenko on 09.11.16. +// Copyright © 2016 Igor Kasyanenko. All rights reserved. +// + +import UIKit +import RxSwift +import RxCocoa +class PromoterEventsViewController: UIViewController{ + @IBOutlet weak var eventsCollectionView: UICollectionView! + let disposeBag = DisposeBag(); + + let cellName = "EventCollectionViewCell"; + override func viewDidLoad() { + super.viewDidLoad() + + eventsCollectionView.register(UINib(nibName: cellName, bundle: nil), forCellWithReuseIdentifier: cellName) + + let viewModel = PromoterEventsViewModel(API: APIManager.sharedAPI); + viewModel.events.map({ (it) -> [Event] in + switch it { + case .Success(let events): + print("events") + print(events) + return events; + + case .Failure(let error): + print("#error") + print(error) + return []; + } + }).bindTo(eventsCollectionView.rx.items(cellIdentifier: cellName, cellType: EventCollectionViewCell.self)) { (row, element, cell) in + // cell.textLabel?.text = "\(element) @ row \(row)" + print("cell show") + } + .addDisposableTo(disposeBag) + + + // Do any additional setup after loading the view. + } + + override func didReceiveMemoryWarning() { + super.didReceiveMemoryWarning() + // Dispose of any resources that can be recreated. + } + + + + /* + // MARK: - Navigation + + // In a storyboard-based application, you will often want to do a little preparation before navigation + override func prepare(for segue: UIStoryboardSegue, sender: Any?) { + // Get the new view controller using segue.destinationViewController. + // Pass the selected object to the new view controller. + } + */ + +} diff --git a/PartyTonight/Controllers/Promoter/PromoterStatementTotalViewController.swift b/PartyTonight/Controllers/Promoter/PromoterStatementTotalViewController.swift new file mode 100644 index 0000000..2208430 --- /dev/null +++ b/PartyTonight/Controllers/Promoter/PromoterStatementTotalViewController.swift @@ -0,0 +1,46 @@ +// +// PromoterStatementTotalViewController.swift +// PartyTonight +// +// Created by Igor Kasyanenko on 19.11.16. +// Copyright © 2016 Igor Kasyanenko. All rights reserved. +// + +import UIKit + +class PromoterStatementTotalViewController: UIViewController { + + @IBOutlet weak var statementTotalAmountLabel: UILabel! + + @IBOutlet weak var ticketsSalesAmountLabel: UILabel! + + @IBOutlet weak var bottlesSalesAmount: UILabel! + + @IBOutlet weak var tableSalesAmount: UILabel! + + @IBOutlet weak var refundsAmountLabel: UILabel! + @IBOutlet weak var withdrawAmountLabel: UILabel! + + override func viewDidLoad() { + super.viewDidLoad() + + // Do any additional setup after loading the view. + } + + override func didReceiveMemoryWarning() { + super.didReceiveMemoryWarning() + // Dispose of any resources that can be recreated. + } + + + /* + // MARK: - Navigation + + // In a storyboard-based application, you will often want to do a little preparation before navigation + override func prepare(for segue: UIStoryboardSegue, sender: Any?) { + // Get the new view controller using segue.destinationViewController. + // Pass the selected object to the new view controller. + } + */ + +} diff --git a/PartyTonight/Controllers/Promoter/PromoterTablesViewController.swift b/PartyTonight/Controllers/Promoter/PromoterTablesViewController.swift new file mode 100644 index 0000000..233984a --- /dev/null +++ b/PartyTonight/Controllers/Promoter/PromoterTablesViewController.swift @@ -0,0 +1,98 @@ +// +// PromoterTablesViewController.swift +// PartyTonight +// +// Created by Igor Kasyanenko on 19.11.16. +// Copyright © 2016 Igor Kasyanenko. All rights reserved. +// + +import UIKit + +class PromoterTablesViewController: UITableViewController { + + override func viewDidLoad() { + super.viewDidLoad() + let backgroundImage = UIImage(named: "bg_blur") + let imageView = UIImageView(image: backgroundImage) + self.tableView.backgroundView = imageView + imageView.contentMode = .scaleAspectFill + // Uncomment the following line to preserve selection between presentations + // self.clearsSelectionOnViewWillAppear = false + + // Uncomment the following line to display an Edit button in the navigation bar for this view controller. + // self.navigationItem.rightBarButtonItem = self.editButtonItem() + } + + override func didReceiveMemoryWarning() { + super.didReceiveMemoryWarning() + // Dispose of any resources that can be recreated. + } + + // MARK: - Table view data source + + override func numberOfSections(in tableView: UITableView) -> Int { + // #warning Incomplete implementation, return the number of sections + return 1 + } + + override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + // #warning Incomplete implementation, return the number of rows + return 20 + } + + + + + override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { + let cell = tableView.dequeueReusableCell(withIdentifier: "BottlesTablesCell", for: indexPath) as! BottlesTablesCell; + + cell.titleLabel.text = "Unnamed"; + return cell + } + + /* + // Override to support conditional editing of the table view. + override func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool { + // Return false if you do not want the specified item to be editable. + return true + } + */ + + /* + // Override to support editing the table view. + override func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) { + if editingStyle == .delete { + // Delete the row from the data source + tableView.deleteRows(at: [indexPath], with: .fade) + } else if editingStyle == .insert { + // Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view + } + } + */ + + /* + // Override to support rearranging the table view. + override func tableView(_ tableView: UITableView, moveRowAt fromIndexPath: IndexPath, to: IndexPath) { + + } + */ + + /* + // Override to support conditional rearranging of the table view. + override func tableView(_ tableView: UITableView, canMoveRowAt indexPath: IndexPath) -> Bool { + // Return false if you do not want the item to be re-orderable. + return true + } + */ + + /* + // MARK: - Navigation + + // In a storyboard-based application, you will often want to do a little preparation before navigation + override func prepare(for segue: UIStoryboardSegue, sender: Any?) { + // Get the new view controller using segue.destinationViewController. + // Pass the selected object to the new view controller. + } + */ + +} diff --git a/PartyTonight/Entities/BillingInfo.swift b/PartyTonight/Entities/BillingInfo.swift new file mode 100644 index 0000000..9da43e9 --- /dev/null +++ b/PartyTonight/Entities/BillingInfo.swift @@ -0,0 +1,27 @@ +// +// BillingInfo.swift +// PartyTonight +// +// Created by Igor Kasyanenko on 11.11.16. +// Copyright © 2016 Igor Kasyanenko. All rights reserved. +// + +import Foundation +import ObjectMapper + +class BillingInfo: Mappable { + var cardNumber: String? + + + required init?(map: Map){ + + } + + init(cardNumber: String) { + self.cardNumber = cardNumber; + } + + func mapping(map: Map) { + cardNumber <- map["card_number"] + } +} diff --git a/PartyTonight/Entities/Event.swift b/PartyTonight/Entities/Event.swift new file mode 100644 index 0000000..aa951ae --- /dev/null +++ b/PartyTonight/Entities/Event.swift @@ -0,0 +1,137 @@ +// +// Event.swift +// PartyTonight +// +// Created by Igor Kasyanenko on 11.11.16. +// Copyright © 2016 Igor Kasyanenko. All rights reserved. +// + +import Foundation +import ObjectMapper + +class Event : Mappable { +// { +// "club_name":"234f", +// "date":"date and time here", +// "location":"df", +// "club_capacity":"2ewd", +// "party_name":"partymaker tonight",(unique) or you will get 401(+ http staus forbidden) +// "zip_code":"43253", +// "bottles": +// [{ "type":"водка", "prise":"prise", "available":"343"}] +// , +// "tickets":[{ +// "price":"34543$" +// }], +// "tables":[{ +// "price":"34535$", +// "available":"3232", +// "type":"typetaable" +// }] +// } +// /maker/event/create +// + header x-auth-token +// successful response 201(created) + + var clubName,location,clubCapacity,partyName,zipCode: String? + var date: String? + var bottles: [Bottle]? + var tickets: [Ticket]? + var tables: [Table]? + + required init?(map: Map){ + + } + + init(clubName: String,dateTime:String,location:String,clubCapacity:String,ticketsPrice:String,partyName:String, tables:[Table], bottles:[Bottle]){ + self.clubName = clubName; + self.date = dateTime; + self.location = location; + self.clubCapacity = clubCapacity; + self.tickets = [Ticket(price: ticketsPrice)] + self.partyName = partyName; + self.tables = tables; + self.bottles = bottles; + + } + + func mapping(map: Map) { + clubName <- map["club_name"] + location <- map["location"] + clubCapacity <- map["club_capacity"] + partyName <- map["party_name"] + zipCode <- map["zip_code"] + //date <- (map["date"], DateTransform()) + date <- map["date"] + bottles <- map["bottles"] + tickets <- map["tickets"] + tables <- map["tables"] + + } + +} + + +class Table:Mappable { + var price,type:String? + var available: Int? + + + required init?(map: Map){ + + } + init(price:String?,type:String?, available: Int?){ + self.price = price; + self.type = type; + self.available = available; + } + + func mapping(map: Map) { + price <- map["price"] + type <- map["type"] + available <- map["available"] + + } + +} + +class Ticket:Mappable{ + var price:String? + + init(price: String) { + self.price = price; + } + + required init?(map: Map){ + + } + + func mapping(map: Map) { + price <- map["price"] + } +} + +class Bottle:Mappable{ + var price,type:String? + var available: Int? + + init(price:String?,type:String?, available: Int?){ + self.price = price; + self.type = type; + self.available = available; + } + + required init?(map: Map){ + + } + + func mapping(map: Map) { + price <- map["price"] + type <- map["type"] + available <- map["available"] + } +} + + + + diff --git a/PartyTonight/Entities/Token.swift b/PartyTonight/Entities/Token.swift index 09b7f93..0039fab 100644 --- a/PartyTonight/Entities/Token.swift +++ b/PartyTonight/Entities/Token.swift @@ -13,6 +13,8 @@ class Token: Mappable { var token: String? required init?(map: Map){ + + } diff --git a/PartyTonight/Entities/User.swift b/PartyTonight/Entities/User.swift index 5e34334..a5efe8b 100644 --- a/PartyTonight/Entities/User.swift +++ b/PartyTonight/Entities/User.swift @@ -23,26 +23,6 @@ class User : Mappable{ var role: Int? var billingInfo: BillingInfo? - -// { -// "idUser": 0, -// "userName": "name",(unique) -// "phoneNumber": "0345353", -// "email": "g54mail.com",(unique) -// "emergencyContact": "contact", -// "password": "7", -// "enable": false, -// "updatedDate": null, -// "createdDate": null, -// "role": null, -// "billing": { -// -// "card_number": "5634"(unique) -// -// } -// } - - init(email: String, password: String){ self.email = email; self.password = password; @@ -79,20 +59,3 @@ class User : Mappable{ } - -class BillingInfo: Mappable { - var cardNumber: String? - - - required init?(map: Map){ - - } - - init(cardNumber: String) { - self.cardNumber = cardNumber; - } - - func mapping(map: Map) { - cardNumber <- map["card_number"] - } -} diff --git a/PartyTonight/Extentions/Date+DateFormatter.swift b/PartyTonight/Extentions/Date+DateFormatter.swift new file mode 100644 index 0000000..f6c7ae1 --- /dev/null +++ b/PartyTonight/Extentions/Date+DateFormatter.swift @@ -0,0 +1,16 @@ +// +// Date+DateFormatter.swift +// PartyTonight +// +// Created by Igor Kasyanenko on 17.11.16. +// Copyright © 2016 Igor Kasyanenko. All rights reserved. +// + +import Foundation +extension Date { + func string(format: String) -> String { + let formatter = DateFormatter() + formatter.dateFormat = format + return formatter.string(from: self) + } +} diff --git a/PartyTonight/Extentions/UIApplication+TopViewController.swift b/PartyTonight/Extentions/UIApplication+TopViewController.swift new file mode 100644 index 0000000..220ca5c --- /dev/null +++ b/PartyTonight/Extentions/UIApplication+TopViewController.swift @@ -0,0 +1,40 @@ +// +// UIApplication+TopViewController.swift +// PartyTonight +// +// Created by Igor Kasyanenko on 18.11.16. +// Copyright © 2016 Igor Kasyanenko. All rights reserved. +// + +import Foundation +import UIKit + +extension UIApplication { + class func topViewController(baseViewController: UIViewController? = UIApplication.shared.keyWindow?.rootViewController) -> UIViewController? { + + if let navigationController = baseViewController as? UINavigationController { + return topViewController(baseViewController: navigationController.visibleViewController) + } + + if let tabBarViewController = baseViewController as? UITabBarController { + + let moreNavigationController = tabBarViewController.moreNavigationController + + if let topViewController1 = moreNavigationController.topViewController, topViewController1.view.window != nil { + return topViewController(baseViewController: topViewController1) + } else if let selectedViewController = tabBarViewController.selectedViewController { + return topViewController(baseViewController: selectedViewController) + } + } + + if let splitViewController = baseViewController as? UISplitViewController, splitViewController.viewControllers.count == 1 { + return topViewController(baseViewController: splitViewController.viewControllers[0]) + } + + if let presentedViewController = baseViewController?.presentedViewController { + return topViewController(baseViewController: presentedViewController) + } + + return baseViewController + } +} diff --git a/PartyTonight/REST/APIManager.swift b/PartyTonight/REST/APIManager.swift index 45a2679..716a377 100644 --- a/PartyTonight/REST/APIManager.swift +++ b/PartyTonight/REST/APIManager.swift @@ -12,9 +12,46 @@ import ObjectMapper import RxAlamofire import SwiftyJSON import Alamofire + +enum Result { + case Success(Value) + case Failure(Error) +} +enum APIError: Error { + case CannotParse(String) + case UnsuccessfulSignup(String) + case UnsuccessfulSignin(String) + case BadStatusCode(String) +} + + +extension APIError: CustomStringConvertible { + + var description: String { + switch self { + + case .UnsuccessfulSignup(let val): + return val; + case .UnsuccessfulSignin(let val): + return val; + case .BadStatusCode(let val): + return val; + case .CannotParse(let val): + return val; + //default: return "Undefined error"; + + } + } + + + +} + class APIManager{ static let sharedAPI = APIManager() + var userToken: Token? + fileprivate struct Constants { static let baseURL = "http://45.55.226.134:8080/partymaker/" } @@ -23,6 +60,9 @@ class APIManager{ case SignUp = "maker/signup" case SignIn = "signin" + case CreateEvent = "maker/event/create" + case GetEvents = "maker/event/get" + var path: String { return Constants.baseURL + rawValue } @@ -37,70 +77,106 @@ class APIManager{ } } + + + private let successfulStatusCodes = 200...201; - enum APIError: Error { - case CannotParse - case UnsuccessfulSignup + func event(create event: Event) -> Observable> { + + print("event desc") + print(event) + print("club name \(event.clubName) b count : \(event.bottles?.count) loc \(event.location) date: \(event.date)") + + + let headers = (userToken?.token != nil) ? ["x-auth-token": userToken!.token!] : [:] + return request(.post, PromoterPath.CreateEvent.path, parameters: Mapper().toJSON(event), encoding: JSONEncoding.default, headers: headers ) + .map { response in + return response.validate(statusCode: self.successfulStatusCodes) + }.flatMap { response -> Observable> in + return Observable.just(Result.Success(201)) + }.catchError({ (err) -> Observable> in + return Observable.just(Result.Failure(APIError.BadStatusCode(err.localizedDescription))); + + }) + //.catchErrorJustReturn(Result.Failure(APIError.BadStatusCode(""))) } -// func signin(_ login:String, password:String)-> Observable { -// -// let params: [String: AnyObject] = [ -// "email": login as AnyObject, -// "password": password as AnyObject, -// ] -// -// return request(.get, PromoterPath.SignIn.path, parameters: params) -// .map(JSON.init) -// .flatMap { json -> Observable in -// guard let user = Mapper().map(JSONString: json.stringValue) else { -// return Observable.error(APIError.CannotParse) -// } -// return Observable.just(user) -// } -// } - - func signin(user: User)-> Observable { + func event() -> Observable> { + let headers = (userToken?.token != nil) ? ["x-auth-token": userToken!.token!] : [:] + return request(.get, PromoterPath.GetEvents.path, headers: headers ) + .flatMap({ (response) -> Observable in + return response.validate(statusCode: self.successfulStatusCodes).rx.json() + }).map(JSON.init) + .flatMap { json -> Observable> in + guard let events = Mapper().mapArray(JSONString: json.rawString() ?? "" ) else { + return Observable.just(Result.Failure(APIError.CannotParse(""))) + } + return Observable.just(Result.Success(events)) + }.catchError({ (err) -> Observable> in + return Observable.just(Result.Failure(APIError.BadStatusCode(err.localizedDescription))); + + }) + //.catchErrorJustReturn(Result.Failure(APIError.BadStatusCode(""))) + } + + + func signin(user: User)-> Observable> { let credentials = user.email! + ":" + user.password!; let authorizationHeader = "Basic " + credentials.toBase64(); - let headers = [ - "Authorization": authorizationHeader - ] - + let headers = ["Authorization": authorizationHeader] return request(.get, PromoterPath.SignIn.path, headers: headers) .flatMap({ (response) -> Observable in - return response.validate(statusCode: 200..<300).rx.json() + return response.validate(statusCode: self.successfulStatusCodes).rx.json() }) .map(JSON.init) - .flatMap { json -> Observable in + .flatMap { json -> Observable> in guard let token = Mapper().map(JSONString: json.rawString() ?? "") else { - return Observable.error(APIError.CannotParse) + return Observable.just(Result.Failure(APIError.CannotParse(""))) } - return Observable.just(token) - } + print("Got token: \(token.token)") + return Observable.just(Result.Success(token)) + }.catchError({ (err) -> Observable> in + + return Observable.just(Result.Failure(APIError.UnsuccessfulSignin(err.localizedDescription))); + + }) + + + + // + //.catchErrorJustReturn(Result.Failure(APIError.UnsuccessfulSignin)) } - - func signup(promoter: User)-> Observable { + func signup(promoter: User)-> Observable> { return request(.post, PromoterPath.SignUp.path, parameters: Mapper().toJSON(promoter) , encoding: JSONEncoding.default) .map { response in - return response.validate(statusCode: 201..<202) - }.flatMap { response -> Observable in + return response.validate(statusCode: self.successfulStatusCodes) + }.flatMap { response -> Observable> in return self.signin(user: promoter) - - } + }.catchError({ (err) -> Observable> in + return Observable.just(Result.Failure(APIError.UnsuccessfulSignup(err.localizedDescription))); + + }) + + + //.catchErrorJustReturn(Result.Failure(APIError.UnsuccessfulSignup(""))) } - func signup(goer: User)-> Observable { + func signup(goer: User)-> Observable> { return request(.post, GoerPath.SignUp.path, parameters: Mapper().toJSON(goer) , encoding: JSONEncoding.default) .map { response in - return response.validate(statusCode: 201..<202) - }.flatMap { response -> Observable in + return response.validate(statusCode: self.successfulStatusCodes) + }.flatMap { response -> Observable> in return self.signin(user: goer) + }.catchError({ (err) -> Observable> in + return Observable.just(Result.Failure(APIError.UnsuccessfulSignup(err.localizedDescription))); - } + }) + + // .catchErrorJustReturn(Result.Failure(APIError.UnsuccessfulSignup(""))) + } } diff --git a/PartyTonight/Services/Wireframe.swift b/PartyTonight/Services/Wireframe.swift new file mode 100644 index 0000000..75bb3ce --- /dev/null +++ b/PartyTonight/Services/Wireframe.swift @@ -0,0 +1,97 @@ +// +// Wireframe.swift +// PartyTonight +// +// Created by Igor Kasyanenko on 17.11.16. +// Copyright © 2016 Igor Kasyanenko. All rights reserved. +// + +import Foundation +#if !RX_NO_MODULE + import RxSwift +#endif + +#if os(iOS) + import UIKit +#elseif os(macOS) + import Cocoa +#endif + +enum RetryResult { + case retry + case cancel +} + +protocol Wireframe { + func open(url: URL) + func promptFor(_ message: String, cancelAction: Action, actions: [Action]) -> Observable +} + + +class DefaultWireframe: Wireframe { + static let sharedInstance = DefaultWireframe() + + func open(url: URL) { + #if os(iOS) + UIApplication.shared.openURL(url) + #elseif os(macOS) + NSWorkspace.shared().open(url) + #endif + } + + #if os(iOS) + private static func rootViewController() -> UIViewController { + // cheating, I know + + return UIApplication.topViewController() ?? UIApplication.shared.keyWindow!.rootViewController! + + + } + #endif + + static func presentAlert(_ message: String) { + #if os(iOS) + let alertView = UIAlertController(title: "Alert", message: message, preferredStyle: .alert) + alertView.addAction(UIAlertAction(title: "OK", style: .cancel) { _ in }) + + rootViewController().present(alertView, animated: true, completion: nil) + #endif + } + + func promptFor(_ message: String, cancelAction: Action, actions: [Action]) -> Observable { + #if os(iOS) + return Observable.create { observer in + let alertView = UIAlertController(title: "Alert", message: message, preferredStyle: .alert) + alertView.addAction(UIAlertAction(title: cancelAction.description, style: .cancel) { _ in + observer.on(.next(cancelAction)) + }) + + for action in actions { + alertView.addAction(UIAlertAction(title: action.description, style: .default) { _ in + observer.on(.next(action)) + }) + } + + DefaultWireframe.rootViewController().present(alertView, animated: true, completion: nil) + + return Disposables.create { + alertView.dismiss(animated:false, completion: nil) + } + } + #elseif os(macOS) + return Observable.error(NSError(domain: "Unimplemented", code: -1, userInfo: nil)) + #endif + } +} + + +extension RetryResult : CustomStringConvertible { + var description: String { + switch self { + case .retry: + return "Retry" + case .cancel: + return "Cancel" + } + } +} diff --git a/PartyTonight/UI/BottlesTablesCell.swift b/PartyTonight/UI/BottlesTablesCell.swift new file mode 100644 index 0000000..cba4d47 --- /dev/null +++ b/PartyTonight/UI/BottlesTablesCell.swift @@ -0,0 +1,31 @@ +// +// BottlesTablesCell.swift +// PartyTonight +// +// Created by Igor Kasyanenko on 19.11.16. +// Copyright © 2016 Igor Kasyanenko. All rights reserved. +// + +import UIKit + +class BottlesTablesCell: UITableViewCell { + @IBOutlet weak var titleLabel: UILabel! + + @IBOutlet weak var priceLabel: UILabel! + + @IBOutlet weak var availableAmountLabel: UILabel! + + @IBOutlet weak var purchasedAmountLabel: UILabel! + + override func awakeFromNib() { + super.awakeFromNib() + // Initialization code + } + + override func setSelected(_ selected: Bool, animated: Bool) { + super.setSelected(selected, animated: animated) + + // Configure the view for the selected state + } + +} diff --git a/PartyTonight/UI/EventCollectionViewCell.swift b/PartyTonight/UI/EventCollectionViewCell.swift new file mode 100644 index 0000000..4bd6658 --- /dev/null +++ b/PartyTonight/UI/EventCollectionViewCell.swift @@ -0,0 +1,26 @@ +// +// EventCollectionViewCell.swift +// PartyTonight +// +// Created by Igor Kasyanenko on 09.11.16. +// Copyright © 2016 Igor Kasyanenko. All rights reserved. +// + +import UIKit + +class EventCollectionViewCell: UICollectionViewCell { + @IBOutlet weak var bgImageView: UIImageView! + + @IBOutlet weak var tintBgView: UIView! + override func awakeFromNib() { + super.awakeFromNib() + tintBgView.layer.cornerRadius = 8 + tintBgView.layer.masksToBounds = true + bgImageView.layer.cornerRadius = 8 + bgImageView.layer.masksToBounds = true + + // Initialization code + + } + +} diff --git a/PartyTonight/UI/EventCollectionViewCell.xib b/PartyTonight/UI/EventCollectionViewCell.xib new file mode 100644 index 0000000..2bebbce --- /dev/null +++ b/PartyTonight/UI/EventCollectionViewCell.xib @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PartyTonight/UI/EventTableViewCell.swift b/PartyTonight/UI/EventTableViewCell.swift new file mode 100644 index 0000000..c07111d --- /dev/null +++ b/PartyTonight/UI/EventTableViewCell.swift @@ -0,0 +1,39 @@ +// +// EventTableViewCell.swift +// PartyTonight +// +// Created by Igor Kasyanenko on 08.11.16. +// Copyright © 2016 Igor Kasyanenko. All rights reserved. +// + +import UIKit + +class EventTableViewCell: UITableViewCell { + @IBOutlet weak var bgImageView: UIImageView! + @IBOutlet weak var tintView: UIView! + //@IBOutlet weak var bgImageView: UIImageView! + + override func awakeFromNib() { + super.awakeFromNib() + + bgImageView.layer.cornerRadius = 20 + bgImageView.layer.masksToBounds = true + + tintView.layer.cornerRadius = 20 + tintView.layer.masksToBounds = true + // Initialization code + } + + override func setSelected(_ selected: Bool, animated: Bool) { + super.setSelected(selected, animated: animated) + + // Configure the view for the selected state + } + +// override func layoutSubviews() { +// let f = contentView.frame +// let fr = UIEdgeInsetsInsetRect(f, UIEdgeInsetsMake(10, 10, 10, 10)) +// contentView.frame = fr +// } +// +} diff --git a/PartyTonight/UI/EventTableViewCell.xib b/PartyTonight/UI/EventTableViewCell.xib new file mode 100644 index 0000000..e49420e --- /dev/null +++ b/PartyTonight/UI/EventTableViewCell.xib @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PartyTonight/UI/TypePriceQuantityView.swift b/PartyTonight/UI/TypePriceQuantityView.swift new file mode 100644 index 0000000..a1b173e --- /dev/null +++ b/PartyTonight/UI/TypePriceQuantityView.swift @@ -0,0 +1,73 @@ +// +// TypePriceQuantityView.swift +// PartyTonight +// +// Created by Igor Kasyanenko on 10.11.16. +// Copyright © 2016 Igor Kasyanenko. All rights reserved. +// + +import UIKit + +class TypePriceQuantityView: UIView { + @IBOutlet var contentView: UIView! + + @IBOutlet weak var stackView: UIStackView! + @IBOutlet weak var typeTextField: UITextField! + + + @IBOutlet weak var priceTextField: UITextField! + + @IBOutlet weak var quantityTextField: UITextField! + override func draw(_ rect: CGRect) { + + } + + + required init?(coder aDecoder: NSCoder) { + super.init(coder: aDecoder) + initSubviews() + } + + override init(frame: CGRect) { + super.init(frame: frame) + initSubviews() + } + + func initSubviews() { + + self.backgroundColor = UIColor.clear; + + let nib = UINib(nibName: "TypePriceQuantityView", bundle: nil) + nib.instantiate(withOwner: self, options: nil) + contentView.frame = bounds + + // widthAnchor.constraint(equalToConstant: bounds.width).isActive = true + heightAnchor.constraint(equalToConstant: bounds.height).isActive = true + //heightAnchor.constraint(equalTo: stackView.heightAnchor, constant: 1) + //alignmentRectInsets.bottom = 20; + //contentView.frame = CGRect(x: 0, y: 0, width: 100, height: 100); + addSubview(contentView) + + // custom initialization logic + //... + } + + override func layoutSubviews() { + super.layoutSubviews(); + setTextFieldPlaceholders() + } + + + func setTextFieldPlaceholders(){ + typeTextField.attributedPlaceholder = NSAttributedString(string:"Type", attributes:[NSForegroundColorAttributeName: UIColor.white, NSFontAttributeName: UIFont(name: "Aguda-Regular2", size: 18.0)! ]) + + priceTextField.attributedPlaceholder = NSAttributedString(string:"Price", attributes:[NSForegroundColorAttributeName: UIColor.white, NSFontAttributeName: UIFont(name: "Aguda-Regular2", size: 18.0)! ]) + + quantityTextField.attributedPlaceholder = NSAttributedString(string:"Quantity", attributes:[NSForegroundColorAttributeName: UIColor.white, NSFontAttributeName: UIFont(name: "Aguda-Regular2", size: 18.0)! ]) + + } + + + + +} diff --git a/PartyTonight/UI/TypePriceQuantityView.xib b/PartyTonight/UI/TypePriceQuantityView.xib new file mode 100644 index 0000000..8152991 --- /dev/null +++ b/PartyTonight/UI/TypePriceQuantityView.xib @@ -0,0 +1,69 @@ + + + + + + + + + + + + + Aguda-Regular2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PartyTonight/VM/Authorization/LoginViewModel.swift b/PartyTonight/VM/Authorization/LoginViewModel.swift index e7a8dc7..0bfa67f 100644 --- a/PartyTonight/VM/Authorization/LoginViewModel.swift +++ b/PartyTonight/VM/Authorization/LoginViewModel.swift @@ -11,11 +11,8 @@ import UIKit import RxSwift class LoginViewModel{ - fileprivate let disposeBag = DisposeBag() - var email: Observable - var password: Observable - var userToken: Observable + var userToken: Observable> init(input: ( @@ -29,35 +26,16 @@ class LoginViewModel{ ) ) { - self.email = input.email; - self.password = input.password; - let usernameAndPassword = Observable.combineLatest(input.email, input.password) { ($0, $1) } - userToken = input.loginTaps.withLatestFrom(usernameAndPassword) - .flatMap ({ (email, password) -> Observable in - - // let user = User(); - - + .flatMap ({ (email, password) -> Observable> in return API.signin(user: User(email: email, password: password)) .observeOn(MainScheduler.instance) //.catchErrorJustReturn(nil) //.trackActivity(signingIn) - }) - .shareReplay(1) - - - /* - - //test - signedUser.subscribe(onNext: { (user) in - print("User signed: \(user)") - }, onError: { (error) in - print("Caught an error: \(error)") - } ) - */ + }).shareReplay(1) + } } diff --git a/PartyTonight/VM/Authorization/RegistrationViewModel.swift b/PartyTonight/VM/Authorization/RegistrationViewModel.swift index edcb106..0a3c039 100644 --- a/PartyTonight/VM/Authorization/RegistrationViewModel.swift +++ b/PartyTonight/VM/Authorization/RegistrationViewModel.swift @@ -14,7 +14,7 @@ import RxSwift class RegistrationViewModel{ fileprivate let disposeBag = DisposeBag() - var userToken: Observable + var userToken: Observable> init(input: ( diff --git a/PartyTonight/VM/Promoter/CreateEventViewModel.swift b/PartyTonight/VM/Promoter/CreateEventViewModel.swift new file mode 100644 index 0000000..fb98ee3 --- /dev/null +++ b/PartyTonight/VM/Promoter/CreateEventViewModel.swift @@ -0,0 +1,64 @@ +// +// CreateEventViewModel.swift +// PartyTonight +// +// Created by Igor Kasyanenko on 11.11.16. +// Copyright © 2016 Igor Kasyanenko. All rights reserved. +// + +import Foundation +import UIKit +import RxSwift +class CreateEventViewModel{ + + private var tablesArray:[Observable
] = []; + private var bottlesArray:[Observable] = []; + var eventResponse: Observable>! + + init(input: ( + clubName: Observable, + dateTime: Observable, + location: Observable, + uploadPhotosTaps: Observable, + clubCapacity: Observable, + ticketsPrice: Observable, + partyName: Observable, + bottles: Observable>, + tables: Observable>, + createEventTaps: Observable + ), + API: (APIManager)) { + + let rxTables = input.tables.flatMapLatest{(v) -> Observable<[Table]> in + self.tablesArray.append(v) + return Observable.combineLatest(self.tablesArray) { (elem) -> [Table] in + return elem; + } + } + + let rxBottles = input.bottles.flatMapLatest{(v) -> Observable<[Bottle]> in + self.bottlesArray.append(v) + return Observable.combineLatest(self.bottlesArray) { (elem) -> [Bottle] in + return elem; + } + } + + + + + + let eventInfo = input.createEventTaps.withLatestFrom(Observable.combineLatest(input.clubName,input.dateTime,input.location,input.clubCapacity, input.ticketsPrice, input.partyName,rxTables, rxBottles) { (clubName: $0,dateTime: $1 ,location: $2 ,clubCapacity: $3,ticketsPrice: $4,partyName: $5, tables: $6, bottles: $7) }) + + eventResponse = eventInfo.flatMapLatest({ (clubName,dateTime ,location,clubCapacity,ticketsPrice,partyName, tables, bottles) -> Observable> in + + let df = DateFormatter(); + df.dateFormat = "EEEE, d MMM yyyy HH:mm" + return API.event(create: Event(clubName: clubName,dateTime: String(round(df.date(from: dateTime)?.timeIntervalSince1970 ?? NSDate().timeIntervalSince1970)) ,location: location,clubCapacity: clubCapacity,ticketsPrice: ticketsPrice,partyName: partyName, tables: tables, bottles: bottles)) + //.catchErrorJustReturn(nil) + //.trackActivity(signingIn) + }).shareReplay(1) + + } + + +} diff --git a/PartyTonight/VM/Promoter/PromoterEventsViewModel.swift b/PartyTonight/VM/Promoter/PromoterEventsViewModel.swift new file mode 100644 index 0000000..61398fe --- /dev/null +++ b/PartyTonight/VM/Promoter/PromoterEventsViewModel.swift @@ -0,0 +1,19 @@ +// +// PromoterEventsViewModel.swift +// PartyTonight +// +// Created by Igor Kasyanenko on 15.11.16. +// Copyright © 2016 Igor Kasyanenko. All rights reserved. +// + +import Foundation +import RxSwift + +class PromoterEventsViewModel{ + var events: Observable>; + init(API: (APIManager)) { + + events = API.event(); + + } +} diff --git a/PartyTonight/ViewController.swift b/PartyTonight/ViewController.swift index 2e5c9b7..01863c7 100644 --- a/PartyTonight/ViewController.swift +++ b/PartyTonight/ViewController.swift @@ -19,7 +19,6 @@ class ViewController: UIViewController { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } - - + }