Update service for new API
This commit is contained in:
parent
08fe8d8663
commit
c4cc1ec73e
1 changed files with 61 additions and 16 deletions
|
|
@ -5,7 +5,11 @@ import type { components, paths } from "./types"; // generated by openapi-typesc
|
||||||
import { Logger } from "src/logger";
|
import { Logger } from "src/logger";
|
||||||
import { Database } from "src/database/database";
|
import { Database } from "src/database/database";
|
||||||
import { SyncSettings } from "src/database/sync-settings";
|
import { SyncSettings } from "src/database/sync-settings";
|
||||||
import { VaultUpdateId, RelativePath } from "src/database/document-metadata.js";
|
import {
|
||||||
|
VaultUpdateId,
|
||||||
|
RelativePath,
|
||||||
|
DocumentId,
|
||||||
|
} from "src/database/document-metadata.js";
|
||||||
|
|
||||||
export class SyncServer {
|
export class SyncServer {
|
||||||
private static VAULT_ID = "default";
|
private static VAULT_ID = "default";
|
||||||
|
|
@ -43,24 +47,63 @@ export class SyncServer {
|
||||||
return response.data;
|
return response.data;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async put({
|
public async create({
|
||||||
relativePath,
|
relativePath,
|
||||||
parentVersionId,
|
|
||||||
contentBytes,
|
contentBytes,
|
||||||
createdDate,
|
createdDate,
|
||||||
}: {
|
}: {
|
||||||
relativePath: RelativePath;
|
relativePath: RelativePath;
|
||||||
parentVersionId: VaultUpdateId | undefined;
|
contentBytes: Uint8Array;
|
||||||
|
createdDate: Date;
|
||||||
|
}): Promise<components["schemas"]["DocumentVersion"]> {
|
||||||
|
let response = await this.client.POST("/vaults/{vault_id}/documents", {
|
||||||
|
params: {
|
||||||
|
path: {
|
||||||
|
vault_id: SyncServer.VAULT_ID,
|
||||||
|
},
|
||||||
|
header: {
|
||||||
|
authorization:
|
||||||
|
"Bearer " + this.database.getSettings().token,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
body: {
|
||||||
|
contentBase64: lib.bytes_to_base64(contentBytes),
|
||||||
|
createdDate: createdDate.toISOString(),
|
||||||
|
relativePath,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
if (!response.data) {
|
||||||
|
throw new Error(`Failed to create document: ${response.error}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
Logger.getInstance().info(
|
||||||
|
"Created document " + JSON.stringify(response.data)
|
||||||
|
);
|
||||||
|
|
||||||
|
return response.data;
|
||||||
|
}
|
||||||
|
|
||||||
|
public async put({
|
||||||
|
parentVersionId,
|
||||||
|
documentId,
|
||||||
|
relativePath,
|
||||||
|
contentBytes,
|
||||||
|
createdDate,
|
||||||
|
}: {
|
||||||
|
parentVersionId: VaultUpdateId;
|
||||||
|
documentId: DocumentId;
|
||||||
|
relativePath: RelativePath;
|
||||||
contentBytes: Uint8Array;
|
contentBytes: Uint8Array;
|
||||||
createdDate: Date;
|
createdDate: Date;
|
||||||
}): Promise<components["schemas"]["DocumentVersion"]> {
|
}): Promise<components["schemas"]["DocumentVersion"]> {
|
||||||
let response = await this.client.PUT(
|
let response = await this.client.PUT(
|
||||||
"/vaults/{vault_id}/documents/{relative_path}",
|
"/vaults/{vault_id}/documents/{document_id}",
|
||||||
{
|
{
|
||||||
params: {
|
params: {
|
||||||
path: {
|
path: {
|
||||||
vault_id: SyncServer.VAULT_ID,
|
vault_id: SyncServer.VAULT_ID,
|
||||||
relative_path: encodeURIComponent(relativePath),
|
document_id: documentId,
|
||||||
},
|
},
|
||||||
header: {
|
header: {
|
||||||
authorization:
|
authorization:
|
||||||
|
|
@ -77,7 +120,7 @@ export class SyncServer {
|
||||||
);
|
);
|
||||||
|
|
||||||
if (!response.data) {
|
if (!response.data) {
|
||||||
throw new Error(`Failed to create document: ${response.error}`);
|
throw new Error(`Failed to update document: ${response.error}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
Logger.getInstance().info(
|
Logger.getInstance().info(
|
||||||
|
|
@ -88,19 +131,21 @@ export class SyncServer {
|
||||||
}
|
}
|
||||||
|
|
||||||
public async delete({
|
public async delete({
|
||||||
|
documentId,
|
||||||
relativePath,
|
relativePath,
|
||||||
createdDate,
|
createdDate,
|
||||||
}: {
|
}: {
|
||||||
|
documentId: DocumentId;
|
||||||
relativePath: RelativePath;
|
relativePath: RelativePath;
|
||||||
createdDate: Date;
|
createdDate: Date;
|
||||||
}): Promise<void> {
|
}): Promise<void> {
|
||||||
const response = await this.client.DELETE(
|
const response = await this.client.DELETE(
|
||||||
"/vaults/{vault_id}/documents/{relative_path}",
|
"/vaults/{vault_id}/documents/{document_id}",
|
||||||
{
|
{
|
||||||
params: {
|
params: {
|
||||||
path: {
|
path: {
|
||||||
vault_id: SyncServer.VAULT_ID,
|
vault_id: SyncServer.VAULT_ID,
|
||||||
relative_path: encodeURIComponent(relativePath),
|
document_id: documentId,
|
||||||
},
|
},
|
||||||
header: {
|
header: {
|
||||||
authorization:
|
authorization:
|
||||||
|
|
@ -109,14 +154,14 @@ export class SyncServer {
|
||||||
},
|
},
|
||||||
body: {
|
body: {
|
||||||
createdDate: createdDate.toISOString(),
|
createdDate: createdDate.toISOString(),
|
||||||
|
relativePath,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
// Response will be empty if successful
|
if (response.error) {
|
||||||
// if (!response.data) {
|
throw new Error(`Failed to delete document`);
|
||||||
// throw new Error(`Failed to delete document: ${response.error}`);
|
}
|
||||||
// }
|
|
||||||
|
|
||||||
Logger.getInstance().info(
|
Logger.getInstance().info(
|
||||||
"Updated document " + JSON.stringify(response.data)
|
"Updated document " + JSON.stringify(response.data)
|
||||||
|
|
@ -126,17 +171,17 @@ export class SyncServer {
|
||||||
}
|
}
|
||||||
|
|
||||||
public async get({
|
public async get({
|
||||||
relativePath,
|
documentId,
|
||||||
}: {
|
}: {
|
||||||
relativePath: RelativePath;
|
documentId: DocumentId;
|
||||||
}): Promise<components["schemas"]["DocumentVersion"]> {
|
}): Promise<components["schemas"]["DocumentVersion"]> {
|
||||||
const response = await this.client.GET(
|
const response = await this.client.GET(
|
||||||
"/vaults/{vault_id}/documents/{relative_path}",
|
"/vaults/{vault_id}/documents/{document_id}",
|
||||||
{
|
{
|
||||||
params: {
|
params: {
|
||||||
path: {
|
path: {
|
||||||
vault_id: SyncServer.VAULT_ID,
|
vault_id: SyncServer.VAULT_ID,
|
||||||
relative_path: encodeURIComponent(relativePath),
|
document_id: documentId,
|
||||||
},
|
},
|
||||||
header: {
|
header: {
|
||||||
authorization:
|
authorization:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue