ente/packages/shared/network/cast.ts

50 lines
1.4 KiB
TypeScript
Raw Normal View History

2024-01-19 07:23:20 +00:00
import { logError } from '../sentry';
import HTTPService from './HTTPService';
import { getEndpoint } from './api';
class CastGateway {
2024-01-20 04:33:26 +00:00
constructor() {}
2024-01-19 07:23:20 +00:00
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();