about summary refs log tree commit diff
path: root/assets/src/network/channel/request.ts
blob: 693e4081c4318cabfd26644811f77c1b20d3a4b0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import getShareToken from "../../utils/getShareToken";
import { answer } from "../transfer/request";
import { Connection, ConnectionState, on, updateState } from "./connection";
import type { RequestAcceptedMessage } from "./messages/messages";
import { joinRequestChannel } from "./socket";

export async function startRequest(connection: Connection) {
    updateState(ConnectionState.CONNECTING_CHANNEL);

    const requestChannel = await joinRequestChannel(
        connection.socket,
        connection.token,
        getShareToken()
    );
    connection.channel = requestChannel;

    on("request_accepted", onRequestAccepted);

    updateState(ConnectionState.CONNECTED);
}

async function onRequestAccepted(message: RequestAcceptedMessage) {
    await answer(message);
}