0
Post test helpers issuing cards card shipping return
One script reply has been approved by the moderators Verified

Updates the shipping status of the specified Issuing Card object to returned.

Created by hugo697 189 days ago Viewed 5615 times
0
Submitted by hugo697 Typescript (fetch-only)
Verified 189 days ago
1
type Stripe = {
2
  token: string;
3
};
4
/**
5
 * Post test helpers issuing cards card shipping return
6
 * Updates the shipping status of the specified Issuing Card object to returned.
7
 */
8
export async function main(
9
  auth: Stripe,
10
  card: string,
11
  body: { expand?: string[] }
12
) {
13
  const url = new URL(
14
    `https://api.stripe.com/v1/test_helpers/issuing/cards/${card}/shipping/return`
15
  );
16

17
  const response = await fetch(url, {
18
    method: "POST",
19
    headers: {
20
      "Content-Type": "application/x-www-form-urlencoded",
21
      Authorization: "Bearer " + auth.token,
22
    },
23
    body: encodeParams(body),
24
  });
25
  if (!response.ok) {
26
    const text = await response.text();
27
    throw new Error(`${response.status} ${text}`);
28
  }
29
  return await response.json();
30
}
31

32
function encodeParams(o: any) {
33
  function iter(o: any, path: string) {
34
    if (Array.isArray(o)) {
35
      o.forEach(function (a) {
36
        iter(a, path + "[]");
37
      });
38
      return;
39
    }
40
    if (o !== null && typeof o === "object") {
41
      Object.keys(o).forEach(function (k) {
42
        iter(o[k], path + "[" + k + "]");
43
      });
44
      return;
45
    }
46
    data.push(path + "=" + o);
47
  }
48
  const data: string[] = [];
49
  Object.keys(o).forEach(function (k) {
50
    if (o[k] !== undefined) {
51
      iter(o[k], k);
52
    }
53
  });
54
  return new URLSearchParams(data.join("&"));
55
}
56