@@ -3,13 +3,23 @@ import Foundation
33public final class RemotePostUpdateParameters : NSObject , Encodable {
44 public var ifNotModifiedSince : Date ? ?
55 public var status : String ? ?
6+ public var authorID : String ? ?
67 public var date : Date ? ?
8+ public var title : String ? ?
79 public var content : String ? ?
10+ public var password : String ? ?
11+ public var excerpt : String ? ?
812 public var slug : String ? ?
13+ public var format : String ? ?
14+ public var categoryIDs : [ String ] ?
15+ public var tags : [ String ] ?
16+ public var parentPostID : String ? ?
17+ public var featuredImageID : String ? ?
18+ public var isSticky : Bool ?
919
10- @objc public func makeRESTParameters( ) -> [ String : Any ] ? {
20+ // Makes it compatible with Objetive-C.
21+ @objc public func makeWordPressCOMParameters( ) -> [ String : Any ] ? {
1122 let encoder = JSONEncoder ( )
12- encoder. keyEncodingStrategy = . convertToSnakeCase
1323 encoder. dateEncodingStrategy = . formatted( NSDate . rfc3339DateFormatter ( ) )
1424 guard let data = try ? encoder. encode ( self ) ,
1525 let object = try ? JSONSerialization . jsonObject ( with: data) else {
@@ -18,3 +28,34 @@ public final class RemotePostUpdateParameters: NSObject, Encodable {
1828 return object as? [ String : Any ]
1929 }
2030}
31+
32+ private struct RemotePostUpdateParametersWordPressComEncoder : Encodable {
33+ let parameters : RemotePostUpdateParameters
34+
35+ func encode( to encoder: Encoder ) throws {
36+ var container = encoder. container ( keyedBy: StringCodingKey . self)
37+ try container. encodeIfPresent ( parameters. ifNotModifiedSince, forKey: " if_not_modified_since " )
38+ try container. encodeIfPresent ( parameters. status, forKey: " status " )
39+ try container. encodeIfPresent ( parameters. title, forKey: " title " )
40+ try container. encodeIfPresent ( parameters. content, forKey: " content " )
41+ try container. encodeIfPresent ( parameters. date, forKey: " date " )
42+ try container. encodeIfPresent ( parameters. authorID, forKey: " author " )
43+ try container. encodeIfPresent ( parameters. password, forKey: " password " )
44+ try container. encodeIfPresent ( parameters. excerpt, forKey: " excerpt " )
45+ try container. encodeIfPresent ( parameters. slug, forKey: " slug " )
46+ try container. encodeIfPresent ( parameters. categoryIDs, forKey: " categories_by_id " )
47+ if let tags = parameters. tags {
48+ try container. encode ( [
49+ " terms " : [
50+ " post_tag " : tags
51+ ]
52+ ] , forKey: " terms " )
53+ }
54+ try container. encodeIfPresent ( parameters. format, forKey: " format " )
55+ if let parentPostID = parameters. parentPostID {
56+ try container. encodeIfPresent ( parentPostID ?? " false " , forKey: " parent " )
57+ }
58+ try container. encodeIfPresent ( parameters. featuredImageID, forKey: " featured_image " )
59+ try container. encodeIfPresent ( parameters. isSticky, forKey: " sticky " )
60+ }
61+ }
0 commit comments