ente/packages/shared/network/cast.ts
2024-01-20 10:03:26 +05:30

50 lines
1.4 KiB
TypeScript

import { logError } from '../sentry';
import HTTPService from './HTTPService';
import { getEndpoint } from './api';
class CastGateway {
constructor() {}
public async getCastData(code: string): Promise<string> {
let resp;
try {
resp = await HTTPService.get(`${getEndpoint()}/kex/get`, {
identifier: `${code}_payload`,
});
} catch (e) {
logError(e, 'failed to getCastData');
throw e;
}
return resp.data.wrappedKey;
}
public async getPublicKey(code: string): Promise<string> {
let resp;
try {
resp = await HTTPService.get(`${getEndpoint()}/kex/get`, {
identifier: `${code}_pubkey`,
});
} catch (e) {
logError(e, 'failed to getPublicKey');
throw e;
}
return resp.data.wrappedKey;
}
public async advertisePublicKey(code: string, publicKey: string) {
await HTTPService.put(getEndpoint() + '/kex/add', {
customIdentifier: `${code}_pubkey`,
wrappedKey: publicKey,
});
}
public async publishCastPayload(code: string, castPayload: string) {
await HTTPService.put(getEndpoint() + '/kex/add', {
customIdentifier: `${code}_payload`,
wrappedKey: castPayload,
});
}
}
export default new CastGateway();