mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-16 10:58:30 -05:00
@@ -43,6 +43,7 @@ function createDefaultConfig(quality: string): Config {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function getConfig(quality: string): Promise<Config> {
|
function getConfig(quality: string): Promise<Config> {
|
||||||
|
console.log(`Getting config for quality ${quality}`);
|
||||||
const client = new DocumentClient(process.env['AZURE_DOCUMENTDB_ENDPOINT']!, { masterKey: process.env['AZURE_DOCUMENTDB_MASTERKEY'] });
|
const client = new DocumentClient(process.env['AZURE_DOCUMENTDB_ENDPOINT']!, { masterKey: process.env['AZURE_DOCUMENTDB_MASTERKEY'] });
|
||||||
const collection = 'dbs/builds/colls/config';
|
const collection = 'dbs/builds/colls/config';
|
||||||
const query = {
|
const query = {
|
||||||
@@ -52,13 +53,13 @@ function getConfig(quality: string): Promise<Config> {
|
|||||||
]
|
]
|
||||||
};
|
};
|
||||||
|
|
||||||
return new Promise<Config>((c, e) => {
|
return retry(() => new Promise<Config>((c, e) => {
|
||||||
client.queryDocuments(collection, query, { enableCrossPartitionQuery: true }).toArray((err, results) => {
|
client.queryDocuments(collection, query, { enableCrossPartitionQuery: true }).toArray((err, results) => {
|
||||||
if (err && err.code !== 409) { return e(err); }
|
if (err && err.code !== 409) { return e(err); }
|
||||||
|
|
||||||
c(!results || results.length === 0 ? createDefaultConfig(quality) : results[0] as any as Config);
|
c(!results || results.length === 0 ? createDefaultConfig(quality) : results[0] as any as Config);
|
||||||
});
|
});
|
||||||
});
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
interface Asset {
|
interface Asset {
|
||||||
@@ -86,6 +87,7 @@ function createOrUpdate(commit: string, quality: string, platform: string, type:
|
|||||||
updateTries++;
|
updateTries++;
|
||||||
|
|
||||||
return new Promise<void>((c, e) => {
|
return new Promise<void>((c, e) => {
|
||||||
|
console.log(`Querying existing documents to update...`);
|
||||||
client.queryDocuments(collection, updateQuery, { enableCrossPartitionQuery: true }).toArray((err, results) => {
|
client.queryDocuments(collection, updateQuery, { enableCrossPartitionQuery: true }).toArray((err, results) => {
|
||||||
if (err) { return e(err); }
|
if (err) { return e(err); }
|
||||||
if (results.length !== 1) { return e(new Error('No documents')); }
|
if (results.length !== 1) { return e(new Error('No documents')); }
|
||||||
@@ -101,6 +103,7 @@ function createOrUpdate(commit: string, quality: string, platform: string, type:
|
|||||||
release.updates[platform] = type;
|
release.updates[platform] = type;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
console.log(`Replacing existing document with updated version`);
|
||||||
client.replaceDocument(release._self, release, err => {
|
client.replaceDocument(release._self, release, err => {
|
||||||
if (err && err.code === 409 && updateTries < 5) { return c(update()); }
|
if (err && err.code === 409 && updateTries < 5) { return c(update()); }
|
||||||
if (err) { return e(err); }
|
if (err) { return e(err); }
|
||||||
@@ -113,6 +116,7 @@ function createOrUpdate(commit: string, quality: string, platform: string, type:
|
|||||||
}
|
}
|
||||||
|
|
||||||
return retry(() => new Promise<void>((c, e) => {
|
return retry(() => new Promise<void>((c, e) => {
|
||||||
|
console.log(`Attempting to create document`);
|
||||||
client.createDocument(collection, release, err => {
|
client.createDocument(collection, release, err => {
|
||||||
if (err && err.code === 409) { return c(update()); }
|
if (err && err.code === 409) { return c(update()); }
|
||||||
if (err) { return e(err); }
|
if (err) { return e(err); }
|
||||||
|
|||||||
Reference in New Issue
Block a user