0

List item issues

by
Published Dec 20, 2024

List item validation issues for a given feed processing result owned by the "operation user_account".

Script pinterest Verified

The script

Submitted by hugo697 Bun
Verified 536 days ago
1
//native
2
type Pinterest = {
3
  token: string;
4
};
5
/**
6
 * List item issues
7
 * List item validation issues for a given feed processing result owned by the "operation user_account".
8
 */
9
export async function main(
10
  auth: Pinterest,
11
  processing_result_id: string,
12
  bookmark: string | undefined,
13
  page_size: string | undefined,
14
  item_numbers: string | undefined,
15
  item_validation_issue:
16
    | "AD_LINK_FORMAT_WARNING"
17
    | "AD_LINK_SAME_AS_LINK"
18
    | "ADDITIONAL_IMAGE_LINK_LENGTH_TOO_LONG"
19
    | "ADDITIONAL_IMAGE_LINK_WARNING"
20
    | "ADULT_INVALID"
21
    | "ADWORDS_FORMAT_INVALID"
22
    | "ADWORDS_FORMAT_WARNING"
23
    | "ADWORDS_SAME_AS_LINK"
24
    | "AGE_GROUP_INVALID"
25
    | "ANDROID_DEEP_LINK_INVALID"
26
    | "AVAILABILITY_DATE_INVALID"
27
    | "AVAILABILITY_INVALID"
28
    | "BLOCKLISTED_IMAGE_SIGNATURE"
29
    | "COUNTRY_DOES_NOT_MAP_TO_CURRENCY"
30
    | "CUSTOM_LABEL_LENGTH_TOO_LONG"
31
    | "DESCRIPTION_LENGTH_TOO_LONG"
32
    | "DESCRIPTION_MISSING"
33
    | "DUPLICATE_PRODUCTS"
34
    | "EXPIRATION_DATE_INVALID"
35
    | "GENDER_INVALID"
36
    | "GTIN_INVALID"
37
    | "IMAGE_LINK_INVALID"
38
    | "IMAGE_LINK_LENGTH_TOO_LONG"
39
    | "IMAGE_LINK_MISSING"
40
    | "IMAGE_LINK_WARNING"
41
    | "INVALID_DOMAIN"
42
    | "IOS_DEEP_LINK_INVALID"
43
    | "IS_BUNDLE_INVALID"
44
    | "ITEM_ADDITIONAL_IMAGE_DOWNLOAD_FAILURE"
45
    | "ITEM_MAIN_IMAGE_DOWNLOAD_FAILURE"
46
    | "ITEMID_MISSING"
47
    | "LINK_FORMAT_INVALID"
48
    | "LINK_FORMAT_WARNING"
49
    | "LINK_LENGTH_TOO_LONG"
50
    | "LIST_PRICE_INVALID"
51
    | "MAX_ITEMS_PER_ITEM_GROUP_EXCEEDED"
52
    | "MIN_AD_PRICE_INVALID"
53
    | "MPN_INVALID"
54
    | "MULTIPACK_INVALID"
55
    | "OPTIONAL_CONDITION_INVALID"
56
    | "OPTIONAL_CONDITION_MISSING"
57
    | "OPTIONAL_PRODUCT_CATEGORY_INVALID"
58
    | "OPTIONAL_PRODUCT_CATEGORY_MISSING"
59
    | "PARSE_LINE_ERROR"
60
    | "PINJOIN_CONTENT_UNSAFE"
61
    | "PRICE_CANNOT_BE_DETERMINED"
62
    | "PRICE_MISSING"
63
    | "PRODUCT_CATEGORY_DEPTH_WARNING"
64
    | "PRODUCT_LINK_MISSING"
65
    | "PRODUCT_PRICE_INVALID"
66
    | "PRODUCT_TYPE_LENGTH_TOO_LONG"
67
    | "SALE_DATE_INVALID"
68
    | "SALES_PRICE_INVALID"
69
    | "SALES_PRICE_TOO_HIGH"
70
    | "SALES_PRICE_TOO_LOW"
71
    | "SHIPPING_INVALID"
72
    | "SHIPPING_HEIGHT_INVALID"
73
    | "SHIPPING_WEIGHT_INVALID"
74
    | "SHIPPING_WIDTH_INVALID"
75
    | "SIZE_SYSTEM_INVALID"
76
    | "SIZE_TYPE_INVALID"
77
    | "TAX_INVALID"
78
    | "TITLE_LENGTH_TOO_LONG"
79
    | "TITLE_MISSING"
80
    | "TOO_MANY_ADDITIONAL_IMAGE_LINKS"
81
    | "UTM_SOURCE_AUTO_CORRECTED"
82
    | "WEIGHT_UNIT_INVALID"
83
    | undefined,
84
  ad_account_id: string | undefined,
85
) {
86
  const url = new URL(
87
    `https://api.pinterest.com/v5/catalogs/processing_results/${processing_result_id}/item_issues`,
88
  );
89
  for (const [k, v] of [
90
    ["bookmark", bookmark],
91
    ["page_size", page_size],
92
    ["item_numbers", item_numbers],
93
    ["item_validation_issue", item_validation_issue],
94
    ["ad_account_id", ad_account_id],
95
  ]) {
96
    if (v !== undefined && v !== "" && k !== undefined) {
97
      url.searchParams.append(k, v);
98
    }
99
  }
100
  const response = await fetch(url, {
101
    method: "GET",
102
    headers: {
103
      Authorization: "Bearer " + auth.token,
104
    },
105
    body: undefined,
106
  });
107
  if (!response.ok) {
108
    const text = await response.text();
109
    throw new Error(`${response.status} ${text}`);
110
  }
111
  return await response.json();
112
}
113