This repository has no description
1import { ok } from "@atcute/client";
2import { mainSchema as putRecordSchema } from "@atcute/atproto/types/repo/putRecord";
3import { mainSchema as deleteRecordSchema } from "@atcute/atproto/types/repo/deleteRecord";
4import type { Nsid, RecordKey } from "@atcute/lexicons/syntax";
5import type { OAuthUserAgent } from "@atcute/oauth-browser-client";
6import { createClient } from "$lib/auth/agent";
7import type { IssueRecord, RecordView } from "./records";
8
9const ISSUE_COLLECTION = "sh.tangled.repo.issue" as Nsid;
10
11export const putIssue = async (
12 agent: OAuthUserAgent,
13 rkey: string,
14 record: IssueRecord
15): Promise<RecordView<IssueRecord>> => {
16 const rpc = createClient(agent);
17 const { uri, cid } = await ok(
18 rpc.call(putRecordSchema, {
19 input: {
20 repo: agent.sub,
21 collection: ISSUE_COLLECTION,
22 rkey: rkey as RecordKey,
23 record
24 }
25 })
26 );
27 return { uri, cid, value: record };
28};
29
30export const deleteIssue = async (agent: OAuthUserAgent, rkey: string): Promise<void> => {
31 const rpc = createClient(agent);
32 await ok(
33 rpc.call(deleteRecordSchema, {
34 input: { repo: agent.sub, collection: ISSUE_COLLECTION, rkey: rkey as RecordKey }
35 })
36 );
37};