Changes
6 changed files (+25/-69)
-
-
@@ -9,9 +9,20 @@ } from "@yamori/proto/yamori/workspace/v1/workspace_pb.js";import { type WorkspaceReadMask } from "@yamori/proto/yamori/workspace/v1/workspace_read_mask_pb.js"; import { maskMessage } from "../../../helpers"; import { type YamoriDB } from "../../../types"; import { maskLeave } from "../../work_record/v1/leave"; export function maskWorkspace( export function fromDBEntry(entry: YamoriDB["workspaces"]["value"]): Workspace { return create(WorkspaceSchema, { id: { value: entry.id }, displayName: entry.displayName, deletionKey: { key: entry.capabilities.deletionKey }, updateKey: { key: entry.capabilities.updateKey }, workerAddKey: { key: entry.capabilities.workerAddKey }, }); } export function mask( mask: WorkspaceReadMask | undefined, workspace: MessageInitShape<typeof WorkspaceSchema>, ): Workspace {
-
-
-
@@ -7,13 +7,10 @@ CreateRequestSchema,type CreateRequest, } from "@yamori/proto/yamori/workspace/v1/create_request_pb.js"; import { CreateResponseSchema } from "@yamori/proto/yamori/workspace/v1/create_response_pb.js"; import { type Workspace, WorkspaceSchema, } from "@yamori/proto/yamori/workspace/v1/workspace_pb.js"; import { type Workspace } from "@yamori/proto/yamori/workspace/v1/workspace_pb.js"; import { type Context } from "../../../../types"; import { maskWorkspace } from "../workspace"; import * as workspace from "../workspace"; export async function create(data: Uint8Array, { db }: Context): Promise<Uint8Array> { let req: CreateRequest;
-
@@ -108,19 +105,7 @@ if (!addedEntry) {throw "Failed to query an added entry"; } added = createMessage(WorkspaceSchema, { id: { value: addedEntry.id }, displayName: addedEntry.displayName, deletionKey: { key: addedEntry.capabilities.deletionKey, }, updateKey: { key: addedEntry.capabilities.updateKey, }, workerAddKey: { key: addedEntry.capabilities.workerAddKey, }, }); added = workspace.fromDBEntry(addedEntry); } catch (error) { return toBinary( CreateResponseSchema,
-
@@ -145,7 +130,7 @@ createMessage(CreateResponseSchema, {result: { case: "ok", value: { workspace: maskWorkspace(req.readMask, added), workspace: workspace.mask(req.readMask, added), }, }, }),
-
-
-
@@ -10,7 +10,7 @@ import { DeleteResponseSchema } from "@yamori/proto/yamori/workspace/v1/delete_response_pb.js";import { isSameBytes } from "../../../../helpers"; import { type Context } from "../../../../types"; import { maskWorkspace } from "../workspace"; import * as workspace from "../workspace"; function respond(payload: MessageInitShape<typeof DeleteResponseSchema>): Uint8Array { return toBinary(DeleteResponseSchema, create(DeleteResponseSchema, payload));
-
@@ -101,15 +101,7 @@ return respond({result: { case: "ok", value: { workspace: maskWorkspace(req.readMask, { id: { value: found.id, }, displayName: found.displayName, updateKey: { key: found.capabilities.updateKey }, deletionKey: { key: found.capabilities.deletionKey }, workerAddKey: { key: found.capabilities.workerAddKey }, }), workspace: workspace.mask(req.readMask, workspace.fromDBEntry(found)), }, }, });
-
-
-
@@ -9,7 +9,7 @@ } from "@yamori/proto/yamori/workspace/v1/get_request_pb.js";import { GetResponseSchema } from "@yamori/proto/yamori/workspace/v1/get_response_pb.js"; import { type Context, type YamoriDB } from "../../../../types"; import { maskWorkspace } from "../workspace"; import * as workspace from "../workspace"; export async function get(data: Uint8Array, { db }: Context): Promise<Uint8Array> { let req: GetRequest;
-
@@ -88,13 +88,7 @@ GetResponseSchema,create(GetResponseSchema, { result: { case: "ok", value: maskWorkspace(req.readMask, { id: { value: found.id }, displayName: found.displayName, updateKey: { key: found.capabilities.updateKey }, deletionKey: { key: found.capabilities.deletionKey }, workerAddKey: { key: found.capabilities.workerAddKey }, }), value: workspace.mask(req.readMask, workspace.fromDBEntry(found)), }, }), );
-
-
-
@@ -10,7 +10,7 @@ import { ListResponseSchema } from "@yamori/proto/yamori/workspace/v1/list_response_pb.js";import { type Workspace } from "@yamori/proto/yamori/workspace/v1/workspace_pb.js"; import { type Context } from "../../../../types"; import { maskWorkspace } from "../workspace"; import * as workspace from "../workspace"; export async function list(data: Uint8Array, { db }: Context): Promise<Uint8Array> { let req: ListRequest;
-
@@ -40,17 +40,7 @@ const index = tx.store.index("updatedAt");const workspaces: Workspace[] = []; for await (const cursor of index.iterate(null, "prev")) { workspaces.push( maskWorkspace(req.readMask, { id: { value: cursor.value.id, }, displayName: cursor.value.displayName, deletionKey: { key: cursor.value.capabilities.deletionKey }, updateKey: { key: cursor.value.capabilities.updateKey }, workerAddKey: { key: cursor.value.capabilities.workerAddKey }, }), ); workspaces.push(workspace.mask(req.readMask, workspace.fromDBEntry(cursor.value))); } await tx.done;
-
-
-
@@ -10,7 +10,7 @@ import { UpdateResponseSchema } from "@yamori/proto/yamori/workspace/v1/update_response_pb.js";import { isSameBytes } from "../../../../helpers"; import { type Context, type YamoriDB } from "../../../../types"; import { maskWorkspace } from "../workspace"; import * as workspace from "../workspace"; function respond(payload: MessageInitShape<typeof UpdateResponseSchema>): Uint8Array { return toBinary(UpdateResponseSchema, create(UpdateResponseSchema, payload));
-
@@ -131,15 +131,7 @@ return respond({result: { case: "ok", value: { workspace: maskWorkspace(req.readMask, { id: { value: found.id, }, displayName: found.displayName, updateKey: { key: found.capabilities.updateKey }, deletionKey: { key: found.capabilities.deletionKey }, workerAddKey: { key: found.capabilities.workerAddKey }, }), workspace: workspace.mask(req.readMask, workspace.fromDBEntry(found)), }, }, });
-
@@ -166,15 +158,7 @@ return respond({result: { case: "ok", value: { workspace: maskWorkspace(req.readMask, { id: { value: updated.id, }, displayName: updated.displayName, updateKey: { key: updated.capabilities.updateKey }, deletionKey: { key: updated.capabilities.deletionKey }, workerAddKey: { key: updated.capabilities.workerAddKey }, }), workspace: workspace.mask(req.readMask, workspace.fromDBEntry(updated)), }, }, });
-