mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-14 10:33:30 +01:00
feat(interactions): add launchActivity method (#10646)
* feat(interactions): add launchActivity method * chore: suggestion Co-authored-by: Jiralite <33201955+Jiralite@users.noreply.github.com> * chore: suggestion Co-authored-by: Jiralite <33201955+Jiralite@users.noreply.github.com> * fix: overload and add tests * chore: wording * chore: wording * chore: spacing --------- Co-authored-by: Jiralite <33201955+Jiralite@users.noreply.github.com> Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
This commit is contained in:
@@ -131,4 +131,19 @@ describe('Interaction with_response overloads.', () => {
|
|||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('Launch activity returns undefined.', () => {
|
||||||
|
assertType<Promise<undefined>>(api.interactions.launchActivity(SNOWFLAKE, TOKEN, { with_response: false }));
|
||||||
|
assertType<Promise<undefined>>(api.interactions.launchActivity(SNOWFLAKE, TOKEN));
|
||||||
|
});
|
||||||
|
|
||||||
|
test('Launch activity returns RESTPostAPIInteractionCallbackWithResponseResult.', () =>
|
||||||
|
assertType<Promise<RESTPostAPIInteractionCallbackWithResponseResult>>(
|
||||||
|
api.interactions.launchActivity(SNOWFLAKE, TOKEN, { with_response: true }),
|
||||||
|
));
|
||||||
|
|
||||||
|
test('Launch activity returns either RESTPostAPIInteractionCallbackWithResponseResult or undefined.', () =>
|
||||||
|
assertType<Promise<RESTPostAPIInteractionCallbackWithResponseResult | undefined>>(
|
||||||
|
api.interactions.launchActivity(SNOWFLAKE, TOKEN, { with_response: boolValue }),
|
||||||
|
));
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -525,4 +525,70 @@ export class InteractionsAPI {
|
|||||||
|
|
||||||
return with_response ? response : undefined;
|
return with_response ? response : undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Launches an activity and returns an interaction callback object
|
||||||
|
*
|
||||||
|
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#create-interaction-response}
|
||||||
|
* @param interactionId - The id of the interaction
|
||||||
|
* @param interactionToken - The token of the interaction
|
||||||
|
* @param body - The callback data for launching the activity
|
||||||
|
* @param options - The options for launching the activity
|
||||||
|
*/
|
||||||
|
public async launchActivity(
|
||||||
|
interactionId: Snowflake,
|
||||||
|
interactionToken: string,
|
||||||
|
body: RESTPostAPIInteractionCallbackQuery & { with_response: true },
|
||||||
|
options?: Pick<RequestData, 'signal'>,
|
||||||
|
): Promise<RESTPostAPIInteractionCallbackWithResponseResult>;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Launches an activity
|
||||||
|
*
|
||||||
|
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#create-interaction-response}
|
||||||
|
* @param interactionId - The id of the interaction
|
||||||
|
* @param interactionToken - The token of the interaction
|
||||||
|
* @param body - The callback data for launching the activity
|
||||||
|
* @param options - The options for launching the activity
|
||||||
|
*/
|
||||||
|
public async launchActivity(
|
||||||
|
interactionId: Snowflake,
|
||||||
|
interactionToken: string,
|
||||||
|
body?: RESTPostAPIInteractionCallbackQuery & { with_response?: false },
|
||||||
|
options?: Pick<RequestData, 'signal'>,
|
||||||
|
): Promise<undefined>;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Launches an activity
|
||||||
|
*
|
||||||
|
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#create-interaction-response}
|
||||||
|
* @param interactionId - The id of the interaction
|
||||||
|
* @param interactionToken - The token of the interaction
|
||||||
|
* @param body - The callback data for launching the activity
|
||||||
|
* @param options - The options for launching the activity
|
||||||
|
*/
|
||||||
|
public async launchActivity(
|
||||||
|
interactionId: Snowflake,
|
||||||
|
interactionToken: string,
|
||||||
|
body?: RESTPostAPIInteractionCallbackQuery,
|
||||||
|
options?: Pick<RequestData, 'signal'>,
|
||||||
|
): Promise<RESTPostAPIInteractionCallbackWithResponseResult | undefined>;
|
||||||
|
|
||||||
|
public async launchActivity(
|
||||||
|
interactionId: Snowflake,
|
||||||
|
interactionToken: string,
|
||||||
|
{ with_response }: RESTPostAPIInteractionCallbackQuery = {},
|
||||||
|
{ signal }: Pick<RequestData, 'signal'> = {},
|
||||||
|
) {
|
||||||
|
const response = await this.rest.post(Routes.interactionCallback(interactionId, interactionToken), {
|
||||||
|
query: makeURLSearchParams({ with_response }),
|
||||||
|
auth: false,
|
||||||
|
body: {
|
||||||
|
type: InteractionResponseType.LaunchActivity,
|
||||||
|
},
|
||||||
|
signal,
|
||||||
|
});
|
||||||
|
|
||||||
|
return with_response ? response : undefined;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user