Skip to content

Commit 2e5ae7b

Browse files
committed
Merge remote-tracking branch 'origin/master' into feat-cli-buckets
2 parents 711fbdd + b3eb3a0 commit 2e5ae7b

File tree

4 files changed

+94
-21
lines changed

4 files changed

+94
-21
lines changed

templates/cli/lib/commands/command.js.twig

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,10 @@ const {{ service.name | caseLower }}{{ method.name | caseUcfirst }} = async ({ {
8181
}
8282

8383
{% else %}
84+
{% if parameter.type == 'array' %}
85+
{{ parameter.name | caseCamel | escapeKeyword}} = {{ parameter.name | caseCamel | escapeKeyword}} === true ? [] : {{ parameter.name | caseCamel | escapeKeyword}};
86+
{% endif %}
87+
8488
if (typeof {{ parameter.name | caseCamel | escapeKeyword }} !== 'undefined') {
8589
payload['{{ parameter.name }}'] = {{ parameter.name | caseCamel | escapeKeyword}}{% if method.consumes[0] == "multipart/form-data" and ( parameter.type != "string" and parameter.type != "array" ) %}.toString(){% endif %};
8690
}
@@ -224,7 +228,7 @@ const {{ service.name | caseLower }}{{ method.name | caseUcfirst }} = async ({ {
224228
{% autoescape false %}
225229
.description(`{{ method.description | replace({'`':'\''}) | replace({'\n':' '}) | replace({'\n \n':' '}) }}`)
226230
{% for parameter in method.parameters.all %}
227-
.{% if parameter.required %}requiredOption{% else %}option{% endif %}(`--{{ parameter.name | escapeKeyword }} <{{ parameter.name | escapeKeyword }}{% if parameter.array.type|length > 0 %}...{% endif %}>`, `{{ parameter.description | replace({'`':'\''}) | replace({'\n':' '}) | replace({'\n \n':' '}) }}`{% if parameter | typeName == 'boolean' %}, parseBool{% elseif parameter | typeName == 'number' %}, parseInteger{% endif %})
231+
.{% if parameter.required %}requiredOption{% else %}option{% endif %}(`--{{ parameter.name | escapeKeyword }} {% if parameter.array.type|length > 0 %}[{% else %}<{% endif %}{{ parameter.name | escapeKeyword }}{% if parameter.array.type|length > 0 %}...{% endif %}{% if parameter.array.type|length > 0 %}]{% else %}>{% endif %}`, `{{ parameter.description | replace({'`':'\''}) | replace({'\n':' '}) | replace({'\n \n':' '}) }}`{% if parameter | typeName == 'boolean' %}, parseBool{% elseif parameter | typeName == 'number' %}, parseInteger{% endif %})
228232
{% endfor %}
229233
{% if method.type == 'location' %}
230234
.requiredOption(`--destination <path>`, `output file path.`)

templates/cli/lib/commands/deploy.js.twig

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@ const {
2323
databasesDeleteAttribute,
2424
databasesListAttributes,
2525
databasesListIndexes,
26-
databasesDeleteIndex
26+
databasesDeleteIndex,
27+
databasesUpdateCollection
2728
} = require("./databases");
2829
const {
2930
storageGetBucket, storageUpdateBucket, storageCreateBucket
@@ -440,17 +441,27 @@ const deployCollection = async ({ all, yes } = {}) => {
440441

441442
let databaseId;
442443

444+
const localDatabase = localConfig.getDatabase(collection.databaseId);
445+
443446
try {
444447
const database = await databasesGet({
445448
databaseId: collection.databaseId,
446449
parseOutput: false,
447450
});
448451
databaseId = database.$id;
452+
453+
await databasesUpdate({
454+
databaseId: collection.databaseId,
455+
name: localDatabase.name ?? collection.databaseId,
456+
parseOutput: false
457+
})
458+
459+
success(`Updated ${localDatabase.name} ( ${collection.databaseId} )`);
449460
} catch(err) {
450461
log(`Database ${collection.databaseId} not found. Creating it now...`);
451462
const database = await databasesCreate({
452463
databaseId: collection.databaseId,
453-
name: collection.databaseId,
464+
name: localDatabase.name ?? collection.databaseId,
454465
parseOutput: false,
455466
});
456467
databaseId = database.$id;
@@ -550,6 +561,18 @@ const deployCollection = async ({ all, yes } = {}) => {
550561
}
551562

552563
success(`Created ${collection.indexes.length} indexes`);
564+
565+
await databasesUpdateCollection({
566+
databaseId,
567+
collectionId: collection['$id'],
568+
name: collection.name,
569+
documentSecurity: collection.documentSecurity,
570+
permissions: collection['$permissions'],
571+
enabled: collection.enabled,
572+
parseOutput: false
573+
})
574+
575+
success(`Deployed ${collection.name} ( ${collection['$id']} )`);
553576
} catch (e) {
554577
if (e.code == 404) {
555578
log(`Collection ${collection.name} does not exist in the project. Creating ... `);

templates/cli/lib/commands/init.js.twig

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,13 @@ const initCollection = async ({ all, databaseId } = {}) => {
171171
}
172172

173173
for(const databaseId of databaseIds) {
174+
const database = await databasesGet({
175+
databaseId,
176+
parseOutput: false
177+
});
178+
179+
localConfig.addDatabase(database);
180+
174181
// TODO: Pagination?
175182
let response = await databasesListCollections({
176183
databaseId,

templates/cli/lib/config.js.twig

Lines changed: 57 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ class Local extends Config {
135135
}
136136

137137
getCollection($id) {
138-
if (!this.has("collection")) {
138+
if (!this.has("collections")) {
139139
return {};
140140
}
141141

@@ -188,6 +188,62 @@ class Local extends Config {
188188
return {};
189189
}
190190

191+
addBucket(props) {
192+
if (!this.has("buckets")) {
193+
this.set("buckets", []);
194+
}
195+
196+
let buckets = this.get("buckets");
197+
for (let i = 0; i < buckets.length; i++) {
198+
if (buckets[i]['$id'] == props['$id']) {
199+
buckets[i] = props;
200+
this.set("buckets", buckets);
201+
return;
202+
}
203+
}
204+
buckets.push(props);
205+
this.set("buckets", buckets);
206+
}
207+
208+
getDatabases() {
209+
if (!this.has("databases")) {
210+
return [];
211+
}
212+
return this.get("databases");
213+
}
214+
215+
getDatabase($id) {
216+
if (!this.has("databases")) {
217+
return {};
218+
}
219+
220+
let databases = this.get("databases");
221+
for (let i = 0; i < databases.length; i++) {
222+
if (databases[i]['$id'] == $id) {
223+
return databases[i];
224+
}
225+
}
226+
227+
return {};
228+
}
229+
230+
addDatabase(props) {
231+
if (!this.has("databases")) {
232+
this.set("databases", []);
233+
}
234+
235+
let databases = this.get("databases");
236+
for (let i = 0; i < databases.length; i++) {
237+
if (databases[i]['$id'] == props['$id']) {
238+
databases[i] = props;
239+
this.set("databases", databases);
240+
return;
241+
}
242+
}
243+
databases.push(props);
244+
this.set("databases", databases);
245+
}
246+
191247
getTeams() {
192248
if (!this.has("teams")) {
193249
return [];
@@ -209,23 +265,6 @@ class Local extends Config {
209265

210266
return {};
211267
}
212-
213-
addBucket(props) {
214-
if (!this.has("buckets")) {
215-
this.set("buckets", []);
216-
}
217-
218-
let buckets = this.get("buckets");
219-
for (let i = 0; i < buckets.length; i++) {
220-
if (buckets[i]['$id'] == props['$id']) {
221-
buckets[i] = props;
222-
this.set("buckets", buckets);
223-
return;
224-
}
225-
}
226-
buckets.push(props);
227-
this.set("buckets", buckets);
228-
}
229268

230269
addTeam(props) {
231270
if (!this.has("teams")) {

0 commit comments

Comments
 (0)