diff --git a/Kickstarter.xcodeproj/project.pbxproj b/Kickstarter.xcodeproj/project.pbxproj index 6d5a3481ed..611a1e5e15 100644 --- a/Kickstarter.xcodeproj/project.pbxproj +++ b/Kickstarter.xcodeproj/project.pbxproj @@ -487,6 +487,11 @@ 606F2166299D456D00BA5CDF /* TriggerCapiEvent.graphql in Sources */ = {isa = PBXBuildFile; fileRef = 606F2165299D456D00BA5CDF /* TriggerCapiEvent.graphql */; }; 606F2168299D45F900BA5CDF /* TriggerCapiEventInput.swift in Sources */ = {isa = PBXBuildFile; fileRef = 606F2167299D45F900BA5CDF /* TriggerCapiEventInput.swift */; }; 606F216B299E8D8500BA5CDF /* TriggerCapiEventInputTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 606F2169299E8C9F00BA5CDF /* TriggerCapiEventInputTests.swift */; }; + 606F214C2994158500BA5CDF /* TriggerCapiEventInput.swift in Sources */ = {isa = PBXBuildFile; fileRef = 606F214B2994158500BA5CDF /* TriggerCapiEventInput.swift */; }; + 606F215C299D3FA900BA5CDF /* GraphAPI.TriggerCapiEventInput+TriggerCapiEventInputTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 606F215A299D3EF800BA5CDF /* GraphAPI.TriggerCapiEventInput+TriggerCapiEventInputTests.swift */; }; + 606F215E299D414800BA5CDF /* GraphAPI.TriggerCapiEventInput+TriggerCapiEventInput.swift in Sources */ = {isa = PBXBuildFile; fileRef = 606F215D299D414800BA5CDF /* GraphAPI.TriggerCapiEventInput+TriggerCapiEventInput.swift */; }; + 606F2166299D456D00BA5CDF /* TriggerCapiEvent.graphql in Sources */ = {isa = PBXBuildFile; fileRef = 606F2165299D456D00BA5CDF /* TriggerCapiEvent.graphql */; }; + 606F2168299D45F900BA5CDF /* TriggerCapiEventInput.swift in Sources */ = {isa = PBXBuildFile; fileRef = 606F2167299D45F900BA5CDF /* TriggerCapiEventInput.swift */; }; 608E7A5328ABDBAE00289E92 /* SetYourPasswordViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 608E7A5128ABD5E700289E92 /* SetYourPasswordViewController.swift */; }; 608E7A5628ABE6CD00289E92 /* SetYourPasswordViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 608E7A5428ABE27400289E92 /* SetYourPasswordViewModel.swift */; }; 60DA50EB28B689A4002E2DF1 /* SetYourPasswordViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 60DA50E928B68990002E2DF1 /* SetYourPasswordViewModelTests.swift */; }; @@ -2077,6 +2082,11 @@ 606F2165299D456D00BA5CDF /* TriggerCapiEvent.graphql */ = {isa = PBXFileReference; lastKnownFileType = text; path = TriggerCapiEvent.graphql; sourceTree = ""; }; 606F2167299D45F900BA5CDF /* TriggerCapiEventInput.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TriggerCapiEventInput.swift; sourceTree = ""; }; 606F2169299E8C9F00BA5CDF /* TriggerCapiEventInputTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TriggerCapiEventInputTests.swift; sourceTree = ""; }; + 606F214B2994158500BA5CDF /* TriggerCapiEventInput.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TriggerCapiEventInput.swift; sourceTree = ""; }; + 606F215A299D3EF800BA5CDF /* GraphAPI.TriggerCapiEventInput+TriggerCapiEventInputTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "GraphAPI.TriggerCapiEventInput+TriggerCapiEventInputTests.swift"; sourceTree = ""; }; + 606F215D299D414800BA5CDF /* GraphAPI.TriggerCapiEventInput+TriggerCapiEventInput.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "GraphAPI.TriggerCapiEventInput+TriggerCapiEventInput.swift"; sourceTree = ""; }; + 606F2165299D456D00BA5CDF /* TriggerCapiEvent.graphql */ = {isa = PBXFileReference; lastKnownFileType = text; path = TriggerCapiEvent.graphql; sourceTree = ""; }; + 606F2167299D45F900BA5CDF /* TriggerCapiEventInput.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TriggerCapiEventInput.swift; sourceTree = ""; }; 608E7A5128ABD5E700289E92 /* SetYourPasswordViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SetYourPasswordViewController.swift; sourceTree = ""; }; 608E7A5428ABE27400289E92 /* SetYourPasswordViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SetYourPasswordViewModel.swift; sourceTree = ""; }; 60DA50E928B68990002E2DF1 /* SetYourPasswordViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SetYourPasswordViewModelTests.swift; sourceTree = ""; }; diff --git a/KsApi/GraphAPI.swift b/KsApi/GraphAPI.swift index 1f22e4018b..1ff16af183 100644 --- a/KsApi/GraphAPI.swift +++ b/KsApi/GraphAPI.swift @@ -11388,6 +11388,7 @@ public enum GraphAPI { } prelaunchActivated risks + sendMetaCapiEvents slug state stateChangedAt @@ -11451,6 +11452,7 @@ public enum GraphAPI { GraphQLField("posts", type: .object(Post.selections)), GraphQLField("prelaunchActivated", type: .nonNull(.scalar(Bool.self))), GraphQLField("risks", type: .nonNull(.scalar(String.self))), + GraphQLField("sendMetaCapiEvents", type: .nonNull(.scalar(Bool.self))), GraphQLField("slug", type: .nonNull(.scalar(String.self))), GraphQLField("state", type: .nonNull(.scalar(ProjectState.self))), GraphQLField("stateChangedAt", type: .nonNull(.scalar(String.self))), @@ -11468,8 +11470,8 @@ public enum GraphAPI { self.resultMap = unsafeResultMap } - public init(availableCardTypes: [CreditCardTypes], backersCount: Int, category: Category? = nil, canComment: Bool, commentsCount: Int, country: Country, creator: Creator? = nil, currency: CurrencyCode, deadlineAt: String? = nil, description: String, environmentalCommitments: [EnvironmentalCommitment?]? = nil, faqs: Faq? = nil, finalCollectionDate: String? = nil, fxRate: Double, goal: Goal? = nil, image: Image? = nil, isProjectWeLove: Bool, isProjectOfTheDay: Bool? = nil, isWatched: Bool, isLaunched: Bool, launchedAt: String? = nil, location: Location? = nil, maxPledge: Int, minPledge: Int, name: String, pid: Int, pledged: Pledged, posts: Post? = nil, prelaunchActivated: Bool, risks: String, slug: String, state: ProjectState, stateChangedAt: String, story: String, tags: [Tag?], url: String, usdExchangeRate: Double? = nil, video: Video? = nil) { - self.init(unsafeResultMap: ["__typename": "Project", "availableCardTypes": availableCardTypes, "backersCount": backersCount, "category": category.flatMap { (value: Category) -> ResultMap in value.resultMap }, "canComment": canComment, "commentsCount": commentsCount, "country": country.resultMap, "creator": creator.flatMap { (value: Creator) -> ResultMap in value.resultMap }, "currency": currency, "deadlineAt": deadlineAt, "description": description, "environmentalCommitments": environmentalCommitments.flatMap { (value: [EnvironmentalCommitment?]) -> [ResultMap?] in value.map { (value: EnvironmentalCommitment?) -> ResultMap? in value.flatMap { (value: EnvironmentalCommitment) -> ResultMap in value.resultMap } } }, "faqs": faqs.flatMap { (value: Faq) -> ResultMap in value.resultMap }, "finalCollectionDate": finalCollectionDate, "fxRate": fxRate, "goal": goal.flatMap { (value: Goal) -> ResultMap in value.resultMap }, "image": image.flatMap { (value: Image) -> ResultMap in value.resultMap }, "isProjectWeLove": isProjectWeLove, "isProjectOfTheDay": isProjectOfTheDay, "isWatched": isWatched, "isLaunched": isLaunched, "launchedAt": launchedAt, "location": location.flatMap { (value: Location) -> ResultMap in value.resultMap }, "maxPledge": maxPledge, "minPledge": minPledge, "name": name, "pid": pid, "pledged": pledged.resultMap, "posts": posts.flatMap { (value: Post) -> ResultMap in value.resultMap }, "prelaunchActivated": prelaunchActivated, "risks": risks, "slug": slug, "state": state, "stateChangedAt": stateChangedAt, "story": story, "tags": tags.map { (value: Tag?) -> ResultMap? in value.flatMap { (value: Tag) -> ResultMap in value.resultMap } }, "url": url, "usdExchangeRate": usdExchangeRate, "video": video.flatMap { (value: Video) -> ResultMap in value.resultMap }]) + public init(availableCardTypes: [CreditCardTypes], backersCount: Int, category: Category? = nil, canComment: Bool, commentsCount: Int, country: Country, creator: Creator? = nil, currency: CurrencyCode, deadlineAt: String? = nil, description: String, environmentalCommitments: [EnvironmentalCommitment?]? = nil, faqs: Faq? = nil, finalCollectionDate: String? = nil, fxRate: Double, goal: Goal? = nil, image: Image? = nil, isProjectWeLove: Bool, isProjectOfTheDay: Bool? = nil, isWatched: Bool, isLaunched: Bool, launchedAt: String? = nil, location: Location? = nil, maxPledge: Int, minPledge: Int, name: String, pid: Int, pledged: Pledged, posts: Post? = nil, prelaunchActivated: Bool, risks: String, sendMetaCapiEvents: Bool, slug: String, state: ProjectState, stateChangedAt: String, story: String, tags: [Tag?], url: String, usdExchangeRate: Double? = nil, video: Video? = nil) { + self.init(unsafeResultMap: ["__typename": "Project", "availableCardTypes": availableCardTypes, "backersCount": backersCount, "category": category.flatMap { (value: Category) -> ResultMap in value.resultMap }, "canComment": canComment, "commentsCount": commentsCount, "country": country.resultMap, "creator": creator.flatMap { (value: Creator) -> ResultMap in value.resultMap }, "currency": currency, "deadlineAt": deadlineAt, "description": description, "environmentalCommitments": environmentalCommitments.flatMap { (value: [EnvironmentalCommitment?]) -> [ResultMap?] in value.map { (value: EnvironmentalCommitment?) -> ResultMap? in value.flatMap { (value: EnvironmentalCommitment) -> ResultMap in value.resultMap } } }, "faqs": faqs.flatMap { (value: Faq) -> ResultMap in value.resultMap }, "finalCollectionDate": finalCollectionDate, "fxRate": fxRate, "goal": goal.flatMap { (value: Goal) -> ResultMap in value.resultMap }, "image": image.flatMap { (value: Image) -> ResultMap in value.resultMap }, "isProjectWeLove": isProjectWeLove, "isProjectOfTheDay": isProjectOfTheDay, "isWatched": isWatched, "isLaunched": isLaunched, "launchedAt": launchedAt, "location": location.flatMap { (value: Location) -> ResultMap in value.resultMap }, "maxPledge": maxPledge, "minPledge": minPledge, "name": name, "pid": pid, "pledged": pledged.resultMap, "posts": posts.flatMap { (value: Post) -> ResultMap in value.resultMap }, "prelaunchActivated": prelaunchActivated, "risks": risks, "sendMetaCapiEvents": sendMetaCapiEvents, "slug": slug, "state": state, "stateChangedAt": stateChangedAt, "story": story, "tags": tags.map { (value: Tag?) -> ResultMap? in value.flatMap { (value: Tag) -> ResultMap in value.resultMap } }, "url": url, "usdExchangeRate": usdExchangeRate, "video": video.flatMap { (value: Video) -> ResultMap in value.resultMap }]) } public var __typename: String { @@ -11781,6 +11783,16 @@ public enum GraphAPI { } } + /// Is this project configured so that events should be triggered for Meta's Conversions API? + public var sendMetaCapiEvents: Bool { + get { + return resultMap["sendMetaCapiEvents"]! as! Bool + } + set { + resultMap.updateValue(newValue, forKey: "sendMetaCapiEvents") + } + } + /// The project's unique URL identifier. public var slug: String { get { diff --git a/KsApi/fragments/ProjectFragment.graphql b/KsApi/fragments/ProjectFragment.graphql index e5d0d0d80a..c9c555c402 100644 --- a/KsApi/fragments/ProjectFragment.graphql +++ b/KsApi/fragments/ProjectFragment.graphql @@ -57,6 +57,7 @@ fragment ProjectFragment on Project { } prelaunchActivated risks + sendMetaCapiEvents slug state stateChangedAt diff --git a/KsApi/graphql-schema.json b/KsApi/graphql-schema.json index 3d29831cce..81fb9593fd 100644 --- a/KsApi/graphql-schema.json +++ b/KsApi/graphql-schema.json @@ -5215,6 +5215,22 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "sendMetaCapiEvents", + "description": "Is this project configured so that events should be triggered for Meta's Conversions API?", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "showCtaToLiveProjects", "description": "Whether or not to show ended to live cta", @@ -11500,12 +11516,6 @@ "isDeprecated": false, "deprecationReason": null }, - { - "name": "facebook_pixel_2022", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, { "name": "hide_facebook_login_button_2022", "description": null, @@ -11530,18 +11540,6 @@ "isDeprecated": false, "deprecationReason": null }, - { - "name": "payment_element_pledge_update_2022", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "payment_element_errored_pledge_2022", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, { "name": "backing_info_modal_comments_2022", "description": null, @@ -42566,6 +42564,26 @@ }, "defaultValue": null }, + { + "name": "image", + "description": null, + "type": { + "kind": "INPUT_OBJECT", + "name": "S3AssetInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "deleteAsset", + "description": null, + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": null + }, { "name": "limit", "description": null, diff --git a/KsApi/models/Project.swift b/KsApi/models/Project.swift index ef9d019446..3f7536b8ce 100644 --- a/KsApi/models/Project.swift +++ b/KsApi/models/Project.swift @@ -19,6 +19,7 @@ public struct Project { public var photo: Photo public var prelaunchActivated: Bool? public var rewardData: RewardData + public var sendMetaCapiEvents: Bool public var slug: String public var staffPick: Bool public var state: State @@ -262,6 +263,7 @@ extension Project: Decodable { case name case photo case prelaunchActivated = "prelaunch_activated" + case sendMetaCapiEvents = "send_meta_capi_events" case slug case staffPick = "staff_pick" case state @@ -288,6 +290,7 @@ extension Project: Decodable { self.photo = try values.decode(Photo.self, forKey: .photo) self.prelaunchActivated = try values.decodeIfPresent(Bool.self, forKey: .prelaunchActivated) self.rewardData = try Project.RewardData(from: decoder) + self.sendMetaCapiEvents = try values.decodeIfPresent(Bool.self, forKey: .sendMetaCapiEvents) ?? false self.slug = try values.decode(String.self, forKey: .slug) self.staffPick = try values.decode(Bool.self, forKey: .staffPick) self.state = try values.decode(State.self, forKey: .state) diff --git a/KsApi/models/graphql/adapters/Backing+BackingFragmentTests.swift b/KsApi/models/graphql/adapters/Backing+BackingFragmentTests.swift index 682f7488eb..6e5fa0467c 100644 --- a/KsApi/models/graphql/adapters/Backing+BackingFragmentTests.swift +++ b/KsApi/models/graphql/adapters/Backing+BackingFragmentTests.swift @@ -576,6 +576,7 @@ private func backingDictionary() -> [String: Any] { }, "risks": "As with any project of this nature, there are always some risks involved with manufacturing and shipping. That's why we're collaborating with the iam8bit team, they have many years of experience producing and delivering all manner of items to destinations all around the world. We do not expect any delays or hiccups with reward fulfillment. But if anything comes up, we will be clear and communicative about what is happening and how it might affect you.", "canComment": false, + "sendMetaCapiEvents": false, "commentsCount": 0, "country": { "__typename": "Country", diff --git a/KsApi/models/graphql/adapters/Project+FetchProjectQueryDataTests.swift b/KsApi/models/graphql/adapters/Project+FetchProjectQueryDataTests.swift index 90b248c615..2eed8ac300 100644 --- a/KsApi/models/graphql/adapters/Project+FetchProjectQueryDataTests.swift +++ b/KsApi/models/graphql/adapters/Project+FetchProjectQueryDataTests.swift @@ -125,6 +125,9 @@ final class Project_FetchProjectQueryDataTests: XCTestCase { XCTAssertEqual(project.country.minPledge, 1) XCTAssertEqual(project.country.trailingCode, true) + // Project Send Capi Events + XCTAssertEqual(project.sendMetaCapiEvents, true) + /// Project User XCTAssertEqual( project.creator.avatar.large, diff --git a/KsApi/models/graphql/adapters/Project+ProjectFragment.swift b/KsApi/models/graphql/adapters/Project+ProjectFragment.swift index aa0088c240..4197d34da1 100644 --- a/KsApi/models/graphql/adapters/Project+ProjectFragment.swift +++ b/KsApi/models/graphql/adapters/Project+ProjectFragment.swift @@ -87,6 +87,7 @@ extension Project { photo: photo, prelaunchActivated: projectFragment.prelaunchActivated, rewardData: RewardData(addOns: addOns, rewards: rewards), + sendMetaCapiEvents: projectFragment.sendMetaCapiEvents, slug: generatedSlug ?? projectFragment.slug, staffPick: projectFragment.isProjectWeLove, state: state, diff --git a/KsApi/models/graphql/adapters/Project+ProjectFragmentTests.swift b/KsApi/models/graphql/adapters/Project+ProjectFragmentTests.swift index 938cdd934a..e6ff0a9be4 100644 --- a/KsApi/models/graphql/adapters/Project+ProjectFragmentTests.swift +++ b/KsApi/models/graphql/adapters/Project+ProjectFragmentTests.swift @@ -62,6 +62,7 @@ final class Project_ProjectFragmentTests: XCTestCase { XCTAssertFalse(project.displayPrelaunch!) XCTAssertNil(project.personalization.backing) XCTAssertNil(project.rewardData.addOns) + XCTAssertEqual(project.sendMetaCapiEvents, false) guard let extendedProjectProperties = project.extendedProjectProperties, extendedProjectProperties.story.htmlViewElements.count > 3, @@ -387,6 +388,7 @@ final class Project_ProjectFragmentTests: XCTestCase { "totalCount":3 }, "prelaunchActivated":true, + "sendMetaCapiEvents": false, "slug":"bandofbards/final-gamble-issue-1", "state":"LIVE", "stateChangedAt":1627999055, diff --git a/KsApi/models/lenses/ProjectLenses.swift b/KsApi/models/lenses/ProjectLenses.swift index c6a5acd7a7..fc4a7024d3 100644 --- a/KsApi/models/lenses/ProjectLenses.swift +++ b/KsApi/models/lenses/ProjectLenses.swift @@ -26,7 +26,8 @@ extension Project { $1.extendedProjectProperties, memberData: $1.memberData, dates: $1.dates, displayPrelaunch: $1.displayPrelaunch, id: $1.id, location: $1.location, name: $1.name, personalization: $1.personalization, photo: $1.photo, - prelaunchActivated: $1.prelaunchActivated, rewardData: $1.rewardData, slug: $1.slug, + prelaunchActivated: $1.prelaunchActivated, rewardData: $1.rewardData, + sendMetaCapiEvents: $1.sendMetaCapiEvents, slug: $1.slug, staffPick: $1.staffPick, state: $1.state, stats: $1.stats, tags: $1.tags, urls: $1.urls, video: $1.video ) } @@ -40,7 +41,8 @@ extension Project { memberData: $1.memberData, dates: $1.dates, displayPrelaunch: $1.displayPrelaunch, id: $1.id, location: $1.location, name: $1.name, personalization: $1.personalization, photo: $1.photo, - prelaunchActivated: $1.prelaunchActivated, rewardData: $1.rewardData, slug: $1.slug, staffPick: + prelaunchActivated: $1.prelaunchActivated, rewardData: $1.rewardData, + sendMetaCapiEvents: $1.sendMetaCapiEvents, slug: $1.slug, staffPick: $1.staffPick, state: $1.state, stats: $1.stats, tags: $1.tags, urls: $1.urls, video: $1.video ) } ) @@ -53,7 +55,8 @@ extension Project { memberData: $1.memberData, dates: $1.dates, displayPrelaunch: $1.displayPrelaunch, id: $1.id, location: $1.location, name: $1.name, personalization: $1.personalization, - photo: $1.photo, prelaunchActivated: $1.prelaunchActivated, rewardData: $1.rewardData, slug: $1.slug, + photo: $1.photo, prelaunchActivated: $1.prelaunchActivated, rewardData: $1.rewardData, + sendMetaCapiEvents: $1.sendMetaCapiEvents, slug: $1.slug, staffPick: $0, state: $1.state, stats: $1.stats, tags: $1.tags, urls: $1.urls, video: $1.video ) } ) @@ -67,7 +70,8 @@ extension Project { memberData: $1.memberData, dates: $1.dates, displayPrelaunch: $1.displayPrelaunch, id: $1.id, location: $1.location, name: $1.name, personalization: $1.personalization, photo: $1.photo, - prelaunchActivated: $1.prelaunchActivated, rewardData: $1.rewardData, slug: $1.slug, + prelaunchActivated: $1.prelaunchActivated, rewardData: $1.rewardData, + sendMetaCapiEvents: $1.sendMetaCapiEvents, slug: $1.slug, staffPick: $1.staffPick, state: $1.state, stats: $1.stats, tags: $1.tags, urls: $1.urls, video: $1.video ) } @@ -81,7 +85,8 @@ extension Project { memberData: $1.memberData, dates: $1.dates, displayPrelaunch: $1.displayPrelaunch, id: $1.id, location: $1.location, name: $1.name, personalization: $1.personalization, photo: $1.photo, - prelaunchActivated: $1.prelaunchActivated, rewardData: $1.rewardData, slug: $1.slug, + prelaunchActivated: $1.prelaunchActivated, rewardData: $1.rewardData, + sendMetaCapiEvents: $1.sendMetaCapiEvents, slug: $1.slug, staffPick: $1.staffPick, state: $1.state, stats: $1.stats, tags: $1.tags, urls: $1.urls, video: $1.video ) } @@ -96,7 +101,8 @@ extension Project { memberData: $1.memberData, dates: $1.dates, displayPrelaunch: $1.displayPrelaunch, id: $1.id, location: $1.location, name: $1.name, personalization: $1.personalization, photo: $1.photo, - prelaunchActivated: $1.prelaunchActivated, rewardData: $1.rewardData, slug: $1.slug, + prelaunchActivated: $1.prelaunchActivated, rewardData: $1.rewardData, + sendMetaCapiEvents: $1.sendMetaCapiEvents, slug: $1.slug, staffPick: $1.staffPick, state: $1.state, stats: $1.stats, tags: $1.tags, urls: $1.urls, video: $1.video ) } @@ -111,7 +117,8 @@ extension Project { memberData: $1.memberData, dates: $0, displayPrelaunch: $1.displayPrelaunch, id: $1.id, location: $1.location, name: $1.name, personalization: $1.personalization, photo: $1.photo, - prelaunchActivated: $1.prelaunchActivated, rewardData: $1.rewardData, slug: $1.slug, + prelaunchActivated: $1.prelaunchActivated, rewardData: $1.rewardData, + sendMetaCapiEvents: $1.sendMetaCapiEvents, slug: $1.slug, staffPick: $1.staffPick, state: $1.state, stats: $1.stats, tags: $1.tags, urls: $1.urls, video: $1.video ) } @@ -125,7 +132,8 @@ extension Project { memberData: $1.memberData, dates: $1.dates, displayPrelaunch: $0, id: $1.id, location: $1.location, name: $1.name, personalization: $1.personalization, photo: $1.photo, - prelaunchActivated: $1.prelaunchActivated, rewardData: $1.rewardData, slug: $1.slug, + prelaunchActivated: $1.prelaunchActivated, rewardData: $1.rewardData, + sendMetaCapiEvents: $1.sendMetaCapiEvents, slug: $1.slug, staffPick: $1.staffPick, state: $1.state, stats: $1.stats, tags: $1.tags, urls: $1.urls, video: $1.video ) } @@ -139,7 +147,8 @@ extension Project { creator: $1.creator, extendedProjectProperties: $0, memberData: $1.memberData, dates: $1.dates, displayPrelaunch: $1.displayPrelaunch, id: $1.id, location: $1.location, name: $1.name, personalization: $1.personalization, photo: $1.photo, - prelaunchActivated: $1.prelaunchActivated, rewardData: $1.rewardData, slug: $1.slug, + prelaunchActivated: $1.prelaunchActivated, rewardData: $1.rewardData, + sendMetaCapiEvents: $1.sendMetaCapiEvents, slug: $1.slug, staffPick: $1.staffPick, state: $1.state, stats: $1.stats, tags: $1.tags, urls: $1.urls, video: $1.video ) } @@ -154,7 +163,8 @@ extension Project { memberData: $1.memberData, dates: $1.dates, displayPrelaunch: $1.displayPrelaunch, id: $0, location: $1.location, name: $1.name, personalization: $1.personalization, photo: $1.photo, - prelaunchActivated: $1.prelaunchActivated, rewardData: $1.rewardData, slug: $1.slug, + prelaunchActivated: $1.prelaunchActivated, rewardData: $1.rewardData, + sendMetaCapiEvents: $1.sendMetaCapiEvents, slug: $1.slug, staffPick: $1.staffPick, state: $1.state, stats: $1.stats, tags: $1.tags, urls: $1.urls, video: $1.video ) } @@ -169,7 +179,8 @@ extension Project { memberData: $1.memberData, dates: $1.dates, displayPrelaunch: $1.displayPrelaunch, id: $1.id, location: $0, name: $1.name, personalization: $1.personalization, photo: $1.photo, - prelaunchActivated: $1.prelaunchActivated, rewardData: $1.rewardData, slug: $1.slug, + prelaunchActivated: $1.prelaunchActivated, rewardData: $1.rewardData, + sendMetaCapiEvents: $1.sendMetaCapiEvents, slug: $1.slug, staffPick: $1.staffPick, state: $1.state, stats: $1.stats, tags: $1.tags, urls: $1.urls, video: $1.video ) } @@ -184,7 +195,8 @@ extension Project { memberData: $0, dates: $1.dates, displayPrelaunch: $1.displayPrelaunch, id: $1.id, location: $1.location, name: $1.name, personalization: $1.personalization, photo: $1.photo, - prelaunchActivated: $1.prelaunchActivated, rewardData: $1.rewardData, slug: $1.slug, + prelaunchActivated: $1.prelaunchActivated, rewardData: $1.rewardData, + sendMetaCapiEvents: $1.sendMetaCapiEvents, slug: $1.slug, staffPick: $1.staffPick, state: $1.state, stats: $1.stats, tags: $1.tags, urls: $1.urls, video: $1.video ) } @@ -199,7 +211,8 @@ extension Project { memberData: $1.memberData, dates: $1.dates, displayPrelaunch: $1.displayPrelaunch, id: $1.id, location: $1.location, name: $0, personalization: $1.personalization, photo: $1.photo, - prelaunchActivated: $1.prelaunchActivated, rewardData: $1.rewardData, slug: $1.slug, + prelaunchActivated: $1.prelaunchActivated, rewardData: $1.rewardData, + sendMetaCapiEvents: $1.sendMetaCapiEvents, slug: $1.slug, staffPick: $1.staffPick, state: $1.state, stats: $1.stats, tags: $1.tags, urls: $1.urls, video: $1.video ) } @@ -214,7 +227,8 @@ extension Project { memberData: $1.memberData, dates: $1.dates, displayPrelaunch: $1.displayPrelaunch, id: $1.id, location: $1.location, name: $1.name, personalization: $0, photo: $1.photo, - prelaunchActivated: $1.prelaunchActivated, rewardData: $1.rewardData, slug: $1.slug, + prelaunchActivated: $1.prelaunchActivated, rewardData: $1.rewardData, + sendMetaCapiEvents: $1.sendMetaCapiEvents, slug: $1.slug, staffPick: $1.staffPick, state: $1.state, stats: $1.stats, tags: $1.tags, urls: $1.urls, video: $1.video ) } @@ -229,7 +243,8 @@ extension Project { memberData: $1.memberData, dates: $1.dates, displayPrelaunch: $1.displayPrelaunch, id: $1.id, location: $1.location, name: $1.name, personalization: $1.personalization, photo: $0, - prelaunchActivated: $1.prelaunchActivated, rewardData: $1.rewardData, slug: $1.slug, + prelaunchActivated: $1.prelaunchActivated, rewardData: $1.rewardData, + sendMetaCapiEvents: $1.sendMetaCapiEvents, slug: $1.slug, staffPick: $1.staffPick, state: $1.state, stats: $1.stats, tags: $1.tags, urls: $1.urls, video: $1.video ) } @@ -244,7 +259,8 @@ extension Project { memberData: $1.memberData, dates: $1.dates, displayPrelaunch: $1.displayPrelaunch, id: $1.id, location: $1.location, name: $1.name, personalization: $1.personalization, photo: $1.photo, - prelaunchActivated: $0, rewardData: $1.rewardData, slug: $1.slug, + prelaunchActivated: $0, rewardData: $1.rewardData, sendMetaCapiEvents: $1.sendMetaCapiEvents, + slug: $1.slug, staffPick: $1.staffPick, state: $1.state, stats: $1.stats, tags: $1.tags, urls: $1.urls, video: $1.video ) } @@ -259,7 +275,24 @@ extension Project { memberData: $1.memberData, dates: $1.dates, displayPrelaunch: $1.displayPrelaunch, id: $1.id, location: $1.location, name: $1.name, personalization: $1.personalization, photo: $1.photo, - prelaunchActivated: $1.prelaunchActivated, rewardData: $0, slug: $1.slug, staffPick: $1.staffPick, + prelaunchActivated: $1.prelaunchActivated, rewardData: $0, sendMetaCapiEvents: $1.sendMetaCapiEvents, + slug: $1.slug, staffPick: $1.staffPick, + state: $1.state, stats: $1.stats, tags: $1.tags, urls: $1.urls, video: $1.video + ) } + ) + + public static let sendMetaCapiEvents = Lens( + view: { $0.sendMetaCapiEvents }, + set: { Project( + availableCardTypes: $1.availableCardTypes, blurb: $1.blurb, category: $1.category, + country: $1.country, creator: $1.creator, + extendedProjectProperties: $1.extendedProjectProperties, + memberData: $1.memberData, dates: $1.dates, + displayPrelaunch: $1.displayPrelaunch, id: $1.id, + location: $1.location, name: $1.name, personalization: $1.personalization, photo: $1.photo, + prelaunchActivated: $1.prelaunchActivated, rewardData: $1.rewardData, sendMetaCapiEvents: $0, + slug: $1.slug, + staffPick: $1.staffPick, state: $1.state, stats: $1.stats, tags: $1.tags, urls: $1.urls, video: $1.video ) } ) @@ -273,7 +306,8 @@ extension Project { memberData: $1.memberData, dates: $1.dates, displayPrelaunch: $1.displayPrelaunch, id: $1.id, location: $1.location, name: $1.name, personalization: $1.personalization, photo: $1.photo, - prelaunchActivated: $1.prelaunchActivated, rewardData: $1.rewardData, slug: $0, + prelaunchActivated: $1.prelaunchActivated, rewardData: $1.rewardData, + sendMetaCapiEvents: $1.sendMetaCapiEvents, slug: $0, staffPick: $1.staffPick, state: $1.state, stats: $1.stats, tags: $1.tags, urls: $1.urls, video: $1.video ) } @@ -288,7 +322,8 @@ extension Project { memberData: $1.memberData, dates: $1.dates, displayPrelaunch: $1.displayPrelaunch, id: $1.id, location: $1.location, name: $1.name, personalization: $1.personalization, photo: $1.photo, - prelaunchActivated: $1.prelaunchActivated, rewardData: $1.rewardData, slug: $1.slug, + prelaunchActivated: $1.prelaunchActivated, rewardData: $1.rewardData, + sendMetaCapiEvents: $1.sendMetaCapiEvents, slug: $1.slug, staffPick: $1.staffPick, state: $0, stats: $1.stats, tags: $1.tags, urls: $1.urls, video: $1.video ) } ) @@ -302,7 +337,8 @@ extension Project { memberData: $1.memberData, dates: $1.dates, displayPrelaunch: $1.displayPrelaunch, id: $1.id, location: $1.location, name: $1.name, personalization: $1.personalization, photo: $1.photo, - prelaunchActivated: $1.prelaunchActivated, rewardData: $1.rewardData, slug: $1.slug, + prelaunchActivated: $1.prelaunchActivated, rewardData: $1.rewardData, + sendMetaCapiEvents: $1.sendMetaCapiEvents, slug: $1.slug, staffPick: $1.staffPick, state: $1.state, stats: $0, tags: $1.tags, urls: $1.urls, video: $1.video ) } ) @@ -316,7 +352,8 @@ extension Project { memberData: $1.memberData, dates: $1.dates, displayPrelaunch: $1.displayPrelaunch, id: $1.id, location: $1.location, name: $1.name, personalization: $1.personalization, photo: $1.photo, - prelaunchActivated: $1.prelaunchActivated, rewardData: $1.rewardData, slug: $1.slug, + prelaunchActivated: $1.prelaunchActivated, rewardData: $1.rewardData, + sendMetaCapiEvents: $1.sendMetaCapiEvents, slug: $1.slug, staffPick: $1.staffPick, state: $1.state, stats: $1.stats, tags: $0, urls: $1.urls, video: $1.video ) } ) @@ -330,7 +367,8 @@ extension Project { memberData: $1.memberData, dates: $1.dates, displayPrelaunch: $1.displayPrelaunch, id: $1.id, location: $1.location, name: $1.name, personalization: $1.personalization, photo: $1.photo, - prelaunchActivated: $1.prelaunchActivated, rewardData: $1.rewardData, slug: $1.slug, + prelaunchActivated: $1.prelaunchActivated, rewardData: $1.rewardData, + sendMetaCapiEvents: $1.sendMetaCapiEvents, slug: $1.slug, staffPick: $1.staffPick, state: $1.state, stats: $1.stats, tags: $1.tags, urls: $0, video: $1.video ) } ) @@ -344,7 +382,8 @@ extension Project { memberData: $1.memberData, dates: $1.dates, displayPrelaunch: $1.displayPrelaunch, id: $1.id, location: $1.location, name: $1.name, personalization: $1.personalization, photo: $1.photo, - prelaunchActivated: $1.prelaunchActivated, rewardData: $1.rewardData, slug: $1.slug, + prelaunchActivated: $1.prelaunchActivated, rewardData: $1.rewardData, + sendMetaCapiEvents: $1.sendMetaCapiEvents, slug: $1.slug, staffPick: $1.staffPick, state: $1.state, stats: $1.stats, tags: $1.tags, urls: $1.urls, video: $0 ) } ) diff --git a/KsApi/models/templates/ProjectTemplates.swift b/KsApi/models/templates/ProjectTemplates.swift index 929347f52c..301afe661e 100644 --- a/KsApi/models/templates/ProjectTemplates.swift +++ b/KsApi/models/templates/ProjectTemplates.swift @@ -44,6 +44,7 @@ extension Project { photo: .template, prelaunchActivated: nil, rewardData: RewardData(addOns: nil, rewards: []), + sendMetaCapiEvents: false, slug: "a-fun-project", staffPick: false, state: .live, diff --git a/KsApi/mutations/templates/query/FetchAddOnsQueryTemplate.swift b/KsApi/mutations/templates/query/FetchAddOnsQueryTemplate.swift index 8df4c72b30..a37f3f5dd9 100644 --- a/KsApi/mutations/templates/query/FetchAddOnsQueryTemplate.swift +++ b/KsApi/mutations/templates/query/FetchAddOnsQueryTemplate.swift @@ -476,6 +476,7 @@ public enum FetchAddsOnsQueryTemplate { "uid": "618005886" } }, + "sendMetaCapiEvents": false, "category": { "__typename": "Category", "id": "Q2F0ZWdvcnktMjI=", diff --git a/KsApi/mutations/templates/query/FetchProjectQueryTemplate.swift b/KsApi/mutations/templates/query/FetchProjectQueryTemplate.swift index 1e5827e9e7..684aa31bcf 100644 --- a/KsApi/mutations/templates/query/FetchProjectQueryTemplate.swift +++ b/KsApi/mutations/templates/query/FetchProjectQueryTemplate.swift @@ -240,6 +240,7 @@ public enum FetchProjectQueryTemplate { "slug":"theaschneider/thequiet", "state":"LIVE", "stateChangedAt":1625118950, + "sendMetaCapiEvents" : true, "tags":[], "url":"https://staging.kickstarter.com/projects/theaschneider/thequiet", "usdExchangeRate":1.18302594,