Skip to content

chore: update create campaign api#1724

Merged
CodePeters merged 3 commits into
masterfrom
create_campaign_changes
Jul 2, 2026
Merged

chore: update create campaign api#1724
CodePeters merged 3 commits into
masterfrom
create_campaign_changes

Conversation

@CodePeters

Copy link
Copy Markdown
Collaborator

Updates the functionality according to new api for creating camapigns.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the Ads Manager “create campaign” flow to align with the new GraphQL API (adsManagerCreateCampaign), including updated input-shaping and regenerated GraphQL client artifacts.

Changes:

  • Switch campaign creation mutation from createCampaign to adsManagerCreateCampaign and update completion handling.
  • Update transformNewForm to produce AdsManagerCreateCampaignInput (new shape for ad sets, geo targets, conversion, creatives).
  • Refresh GraphQL documents/client + schema snapshot, and adjust the repo’s graphql dependency version.

Reviewed changes

Copilot reviewed 8 out of 9 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
src/user/views/adsManager/views/advanced/components/form/NewCampaign.tsx Uses AdsManagerCreateCampaignDocument and reads data.adsManagerCreateCampaign on completion.
src/user/library/index.ts Updates transformNewForm to the new AdsManagerCreateCampaignInput payload structure.
src/user/library/index.test.ts Updates snapshot expectations for the new create-campaign input shape.
src/graphql/campaign.graphql Renames the mutation to AdsManagerCreateCampaign and adds limit/offset args for adSets.
src/graphql/ads-serve.graphql.schema.json Updates schema snapshot to include new fields/types and the new mutation.
src/graphql-client/graphql.ts Regenerated GraphQL TS types and documents (new mutation/input types).
src/graphql-client/gql.ts Regenerated persisted-document mapping for updated operations/fragments.
package.json Changes graphql dependency version.
pnpm-lock.yaml Lockfile updates to reflect the graphql version change and associated dependency graph.
Files not reviewed (1)
  • pnpm-lock.yaml: Generated file

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/graphql/campaign.graphql Outdated
Comment thread src/graphql/campaign.graphql Outdated
Comment thread src/graphql/campaign.graphql Outdated
@github-actions

github-actions Bot commented Jul 1, 2026

Copy link
Copy Markdown

[puLL-Merge] - brave/ads-ui@1724

Description

Migrates campaign creation from CreateCampaign/createCampaign to AdsManagerCreateCampaign/adsManagerCreateCampaign mutation. Uses new AdsManagerCreateCampaignInput with flatter shape (geoTargetCodes, creativeIds, segmentCodes, single conversion). Downgrades graphql 17.0.0 → 16.14.2. Regenerates GraphQL codegen artifacts and updates schema JSON.

Possible Issues

  • graphql downgrade unexplained. Major version regression 17→16. No changelog/PR context. Likely peer-dep compat fix, but blast radius wide across all @graphql-* deps. Confirm intentional.
  • Dropped fields. New input omits dailyCap, perDay, totalMax, format, source, state, currency, externalId that old transform set. Verify server derives these; format-dependent totalMax (28 vs 60) logic removed—server must apply equivalent.
  • billingType cast. form.billingType as BillingType — unchecked cast. Old code passed raw string. If form value not valid enum, server rejects.
  • Dead code. transformConversion (array variant) and osEnumToLegacyCode map now unused if no other callers. transformAdSet removed but AdSetForm import may dangle. Check unused imports/exports.
  • OperatingSystem passed directly. operatingSystems: a.operatingSystems sends enum values vs prior legacy code mapping. Confirm AdsManagerCreateCampaignAdSetInput.operatingSystems expects OperatingSystem enum (schema confirms ENUM OperatingSystem). OK.
  • conversion returns undefined. Test expects "conversion": undefined. Serialized to GraphQL as absent field—fine, but verify Apollo omits undefined keys.
Changes

Changes

  • package.json / pnpm-lock.yaml: graphql 17.0.0 → 16.14.2; lockfile peer-dep specifiers updated throughout.
  • src/graphql/campaign.graphql: Mutation renamed CreateCampaignAdsManagerCreateCampaign, new input type/field.
  • src/graphql-client/gql.ts, graphql.ts: Regenerated. New AdsManagerCreateCampaignInput/AdsManagerCreateCampaignAdSetInput types. Removed CreateCampaignInput, CreateAdSetInput, CreateConversionInput, CreateOsInput, CreateSegmentInput. New document node.
  • src/graphql/ads-serve.graphql.schema.json: Schema updated—new input types, placeholders fields, targetUrl(replaceMacros) arg, adSetIds filter, state field, interaction metric, adsManagerCreateCampaign mutation.
  • src/user/library/index.ts: transformNewForm returns new input shape. Added transformConversionSingle. Removed transformAdSet.
  • src/user/library/index.test.ts: Snapshot updated to new shape.
  • NewCampaign.tsx: Uses AdsManagerCreateCampaignDocument, reads data.adsManagerCreateCampaign.
sequenceDiagram
    participant User
    participant NewCampaign
    participant transformNewForm
    participant Apollo
    participant Server

    User->>NewCampaign: submit form
    NewCampaign->>transformNewForm: CampaignForm
    transformNewForm-->>NewCampaign: AdsManagerCreateCampaignInput
    NewCampaign->>Apollo: mutation AdsManagerCreateCampaign(input)
    Apollo->>Server: adsManagerCreateCampaign
    Server-->>Apollo: { id, paymentType }
    Apollo-->>NewCampaign: data.adsManagerCreateCampaign
    alt paymentType RADOM/complete
        NewCampaign->>User: redirect /complete/new
    else
        NewCampaign->>NewCampaign: createPaymentSession(id)
    end
Loading

@CodePeters CodePeters requested a review from tackley July 2, 2026 12:37
@CodePeters CodePeters merged commit d6f9282 into master Jul 2, 2026
6 checks passed
@CodePeters CodePeters deleted the create_campaign_changes branch July 2, 2026 14:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants