Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -82,8 +82,8 @@
"cmdk": "^1.1.1",
"cookies-next": "^6.0.0",
"date-fns": "^4.1.0",
"etsy-ts": "^4.2.0",
"discord-api-types": "^0.38.17",
"etsy-ts": "^5.0.0",
"exa-js": "^1.8.8",
"fast-deep-equal": "^3.1.3",
"googleapis": "^150.0.1",
Expand Down
14 changes: 7 additions & 7 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion src/server/auth/custom-providers/etsy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@ export interface EtsyProfile {
image_url_75x75?: string | null;
}

export const etsyScopes = "email_r shops_r listings_r";
export const etsyScopes =
"address_r address_w billing_r cart_r cart_w email_r favorites_r favorites_w feedback_r listings_d listings_r listings_w profile_r profile_w recommend_r recommend_w shops_r shops_w transactions_r transactions_w";

export default function EtsyProvider<P extends EtsyProfile>(
options: OAuthUserConfig<P>,
Expand Down
3 changes: 3 additions & 0 deletions src/toolkits/toolkits/etsy/base.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ import { EtsyTools } from "./tools/tools";

import { getListings } from "@/toolkits/toolkits/etsy/tools/get-listings/base";

import { createDraftListing } from "@/toolkits/toolkits/etsy/tools/create-draft-listing/base";

import type { ToolkitConfig } from "@/toolkits/types";

export const etsyParameters = z.object({});
Expand All @@ -14,6 +16,7 @@ export const baseEtsyToolkitConfig: ToolkitConfig<
> = {
tools: {
[EtsyTools.getListings]: getListings,
[EtsyTools.createDraftListing]: createDraftListing,
},
parameters: etsyParameters,
};
6 changes: 5 additions & 1 deletion src/toolkits/toolkits/etsy/client.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,17 @@ import { createClientToolkit } from "@/toolkits/create-toolkit";

import { getListingsClientConfig } from "@/toolkits/toolkits/etsy/tools/get-listings/client";

import { createDraftListingClientConfig } from "@/toolkits/toolkits/etsy/tools/create-draft-listing/client";

import { ToolkitGroups } from "@/toolkits/types";
import { EtsyTools } from "./tools/tools";

export const etsyClientToolkit = createClientToolkit(
baseEtsyToolkitConfig,
{
name: "Etsy Toolkit",
description: "Etsy toolkit for fetching listing details.",
description:
"Etsy toolkit for Listing management, Payment management, Receipt management, Shipping management, Shop management and more!",
icon: SiEtsy,
form: null,
type: ToolkitGroups.DataSource,
Expand All @@ -37,5 +40,6 @@ export const etsyClientToolkit = createClientToolkit(
},
{
[EtsyTools.getListings]: getListingsClientConfig,
[EtsyTools.createDraftListing]: createDraftListingClientConfig,
},
);
13 changes: 11 additions & 2 deletions src/toolkits/toolkits/etsy/server.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,13 @@ import { EtsyTools } from "./tools/tools";
import { EtsySecurityDataStorage } from "./security-data-storage";

import { getListingsServerConfig } from "@/toolkits/toolkits/etsy/tools/get-listings/server";
import { createDraftListingServerConfig } from "@/toolkits/toolkits/etsy/tools/create-draft-listing/server";

export const etsyToolkitServer = createServerToolkit(
baseEtsyToolkitConfig,
"You have access to the Etsy toolkit for general account management. Currently, this toolkit provides:\n" +
"- **Get Listings**: Retrieves all listings and their image URLs associated with the shop associated with the signed-in user.\n\n",
"- **Get Listings By Shop**: Retrieves listings associated with the shop owned by authenticated user. Has the ability to fetch associations relating to each listing as well.\n" +
"- **Create Draft Listing**: Creates a new draft listing in the shop owned by authenticated user. Accepts a variety of inputs to assign to listing.\n",
async () => {
const account = await api.accounts.getAccountByProvider("etsy");

Expand All @@ -32,7 +34,14 @@ export const etsyToolkitServer = createServerToolkit(
});

return {
[EtsyTools.getListings]: getListingsServerConfig(etsy),
[EtsyTools.getListings]: getListingsServerConfig(
etsy,
account.providerAccountId,
),
[EtsyTools.createDraftListing]: createDraftListingServerConfig(
etsy,
account.providerAccountId,
),
};
},
);
Loading