1import * as ivschat from "@distilled.cloud/aws/ivschat";
2import * as Layer from "effect/Layer";
3import { toWireMinutes } from "../../Util/Duration.ts";
4import { makeIvsChatRoomHttpBinding } from "./BindingHttp.ts";
5import {
6 CreateChatToken,
7 type CreateChatTokenRequest,
8} from "./CreateChatToken.ts";
9
10export const CreateChatTokenHttp = Layer.effect(
11 CreateChatToken,
12 makeIvsChatRoomHttpBinding({
13 tag: "AWS.IVSChat.CreateChatToken",
14 operation: ivschat.createChatToken,
15 actions: ["ivschat:CreateChatToken"],
16 prepare: ({ sessionDuration, ...request }: CreateChatTokenRequest) => ({
17 ...request,
18 sessionDurationInMinutes: toWireMinutes(sessionDuration),
19 }),
20 }),
21);