add load, create, update and delete Document

This commit is contained in:
sunilyadav840
2021-06-24 17:57:31 +05:30
parent b4443ac89f
commit 4559496640
8 changed files with 865 additions and 206 deletions

View File

@@ -0,0 +1,51 @@
import { extractPartitionKey, PartitionKeyDefinition } from "@azure/cosmos";
import * as DataModels from "../../Contracts/DataModels";
import DocumentId from "../Tree/DocumentId";
export function hasShardKeySpecified(
document: string,
partitionKey: DataModels.PartitionKey,
partitionKeyProperty: string
): boolean {
return Boolean(
extractPartitionKey(
document,
getPartitionKeyDefinition(partitionKey, partitionKeyProperty) as PartitionKeyDefinition
)
);
}
export function getPartitionKeyDefinition(
partitionKey: DataModels.PartitionKey,
partitionKeyProperty: string
): DataModels.PartitionKey {
if (
partitionKey &&
partitionKey.paths &&
partitionKey.paths.length &&
partitionKey.paths.length > 0 &&
partitionKey.paths[0].indexOf("$v") > -1
) {
// Convert BsonSchema2 to /path format
partitionKey = {
kind: partitionKey.kind,
paths: ["/" + partitionKeyProperty.replace(/\./g, "/")],
version: partitionKey.version,
};
}
return partitionKey;
}
export function formatDocumentContent(row: DocumentId): string {
const { partitionKeyProperty, partitionKeyValue, rid, self, stringPartitionKeyValue, ts } = row;
const documentContent = JSON.stringify({
partitionKeyProperty: partitionKeyProperty || "",
partitionKeyValue: partitionKeyValue || "",
rid: rid || "",
self: self || "",
stringPartitionKeyValue: stringPartitionKeyValue || "",
ts: ts || "",
});
const formattedDocumentContent = documentContent.replace(/,/g, ",\n").replace("{", "{\n").replace("}", "\n}");
return formattedDocumentContent;
}