UNPKG

@getverdict/n8n-nodes-shopify-partner-relationship-events-trigger

Version:

n8n trigger node that polls Shopify Partner RelationshipEvents via GraphQL

37 lines (36 loc) 2.15 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ShopifyPartnerApi = void 0; class ShopifyPartnerApi { constructor() { this.name = 'shopifyPartnerApi'; this.displayName = 'Shopify Partner API'; this.documentationUrl = 'https://shopify.dev/docs/api/partner'; this.properties = [ { displayName: 'Access Token', name: 'accessToken', type: 'string', typeOptions: { password: true }, default: '', required: true, description: 'Partner API access token (Bearer token)' }, { displayName: 'Organization ID', name: 'organizationId', type: 'string', default: '', required: true, description: 'Partner organization ID. Accepts numeric (e.g. 123456) or full GID (e.g. gid://partners/Organization/123456).' }, { displayName: 'API Version', name: 'apiVersion', type: 'string', default: '2025-07', description: 'Partner API version, e.g. 2025-07' }, { displayName: 'Use JSON Suffix (.json)', name: 'useJsonSuffix', type: 'boolean', default: true, description: 'If your endpoint requires /graphql.json (Admin-style). Turn off to use /graphql' }, ]; this.authenticate = { type: 'generic', properties: { headers: { 'X-Shopify-Access-Token': '={{$credentials.accessToken}}', 'Content-Type': 'application/json', Accept: 'application/json', }, }, }; this.test = { request: { url: "={{`https://partners.shopify.com/${($credentials.organizationId && ($credentials.organizationId.match(/^gid:\\/\\/partners\\/Organization\\//) ? $credentials.organizationId.split('/').pop() : $credentials.organizationId))}/api/${$credentials.apiVersion || '2025-07'}/graphql${$credentials.useJsonSuffix === false ? '' : '.json'}`}}", method: 'POST', body: { query: '{ publicApiVersions { handle } }' }, json: true, }, }; } } exports.ShopifyPartnerApi = ShopifyPartnerApi; exports.default = ShopifyPartnerApi;