cards and invoices
This commit is contained in:
parent
bc76402300
commit
97b6f02369
|
@ -8,17 +8,45 @@ const client = new Client({
|
||||||
|
|
||||||
const api = {
|
const api = {
|
||||||
GET: async (req, res) => {
|
GET: async (req, res) => {
|
||||||
console.log(req.headers);
|
const user = "R7R0NY1Z8WT11D43564EEFKTYR"; // req.headers["x-user"];
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const { result } = await client.customersApi.retrieveCustomer("R7R0NY1Z8WT11D43564EEFKTYR");
|
const { result: customerResult } = await client.customersApi.retrieveCustomer(user);
|
||||||
|
const { customer } = customerResult;
|
||||||
|
|
||||||
res.json(result?.customer?.cards ?? []);
|
res.json(customer.cards);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
// console.log(error);
|
|
||||||
res.json([]);
|
res.json([]);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
// POST: async (req, res) => {
|
||||||
|
// const user = req.headers["x-user"];
|
||||||
|
// const card = {
|
||||||
|
// cardNonce: "YOUR_CARD_NONCE",
|
||||||
|
// cardholderName: "Amelia Earhart",
|
||||||
|
// billingAddress: {},
|
||||||
|
// verificationToken: "verification_token0",
|
||||||
|
// };
|
||||||
|
|
||||||
|
// card.bodyBillingAddress.addressLine1 = "500 Electric Ave";
|
||||||
|
// card.bodyBillingAddress.addressLine2 = "Suite 600";
|
||||||
|
// card.bodyBillingAddress.addressLine3 = "address_line_38";
|
||||||
|
// card.bodyBillingAddress.locality = "New York";
|
||||||
|
// card.bodyBillingAddress.sublocality = "sublocality2";
|
||||||
|
// card.bodyBillingAddress.administrativeDistrictLevel1 = "NY";
|
||||||
|
// card.bodyBillingAddress.postalCode = "10003";
|
||||||
|
// card.bodyBillingAddress.country = "US";
|
||||||
|
|
||||||
|
// try {
|
||||||
|
// const { result } = await client.customersApi.createCustomerCard(user, card);
|
||||||
|
|
||||||
|
// res.status(StatusCodes.NO_CONTENT);
|
||||||
|
// } catch (error) {
|
||||||
|
// console.log(Object.keys(error));
|
||||||
|
|
||||||
|
// res.status(StatusCodes.BAD_REQUEST);
|
||||||
|
// }
|
||||||
|
// },
|
||||||
};
|
};
|
||||||
|
|
||||||
export default (req, res) => {
|
export default (req, res) => {
|
||||||
|
|
|
@ -0,0 +1,42 @@
|
||||||
|
import { Client, Environment } from "square";
|
||||||
|
import { StatusCodes } from "http-status-codes";
|
||||||
|
|
||||||
|
const client = new Client({
|
||||||
|
environment: Environment.Sandbox,
|
||||||
|
accessToken: process.env.SQUARE_ACCESS_TOKEN,
|
||||||
|
});
|
||||||
|
|
||||||
|
const api = {
|
||||||
|
GET: async (req, res) => {
|
||||||
|
const user = req.headers["x-user"];
|
||||||
|
|
||||||
|
try {
|
||||||
|
// get locations for invoices search query
|
||||||
|
const { result: locationsResponse } = await client.locationsApi.listLocations();
|
||||||
|
const { locations } = locationsResponse;
|
||||||
|
|
||||||
|
// create invoices serach query
|
||||||
|
const locationIds = locations.map(({ id }) => id);
|
||||||
|
const customerIds = [user, "NBE7TRXZPGZXNBD64JB6DR5AGR"].filter(Boolean);
|
||||||
|
const filter = { locationIds, customerIds };
|
||||||
|
const sort = { field: "INVOICE_SORT_DATE", order: "DESC" };
|
||||||
|
const query = { filter, sort };
|
||||||
|
|
||||||
|
// query invoices with given search criteria
|
||||||
|
const { result: invoicesResponse } = await client.invoicesApi.searchInvoices({ query, limit: 10 });
|
||||||
|
const { invoices } = invoicesResponse;
|
||||||
|
|
||||||
|
res.json(invoices);
|
||||||
|
} catch (error) {
|
||||||
|
res.json([]); // todo: error handling
|
||||||
|
}
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
export default (req, res) => {
|
||||||
|
if (req.method in api) {
|
||||||
|
return api[req.method](req, res);
|
||||||
|
}
|
||||||
|
|
||||||
|
return res.status(StatusCodes.NOT_FOUND);
|
||||||
|
};
|
Reference in New Issue