|
1 | 1 | const { localConfig } = require('./config');
|
2 | 2 | const { projectsList } = require('./commands/projects');
|
| 3 | +const { teamsList } = require('./commands/teams'); |
3 | 4 | const { functionsListRuntimes } = require('./commands/functions');
|
4 | 5 | const { accountListMfaFactors } = require("./commands/account");
|
5 | 6 | const { sdkForConsole } = require("./sdks");
|
6 | 7 | const { validateRequired } = require("./validations");
|
| 8 | +const { paginate } = require('./paginate'); |
7 | 9 |
|
8 | 10 | const { databasesList } = require('./commands/databases');
|
9 | 11 | const JSONbig = require("json-bigint")({ storeAsString: false });
|
@@ -118,6 +120,31 @@ const questionsPullProject = [
|
118 | 120 | return Object.keys(localConfig.getProject()).length !== 0;
|
119 | 121 | }
|
120 | 122 | },
|
| 123 | + { |
| 124 | + type: "list", |
| 125 | + name: "organization", |
| 126 | + message: "Choose the project organization", |
| 127 | + choices: async () => { |
| 128 | + let client = await sdkForConsole(true); |
| 129 | + const { teams } = await paginate(teamsList, { parseOutput: false , sdk: client}, 100, 'teams'); |
| 130 | + |
| 131 | + let choices = teams.map((team, idx) => { |
| 132 | + return { |
| 133 | + name: `${team.name} (${team['$id']})`, |
| 134 | + value: { |
| 135 | + name: team.name, |
| 136 | + id: team['$id'] |
| 137 | + } |
| 138 | + } |
| 139 | + }) |
| 140 | + |
| 141 | + if (choices.length == 0) { |
| 142 | + throw new Error("No organizations found. Please create a new organization.") |
| 143 | + } |
| 144 | + |
| 145 | + return choices; |
| 146 | + } |
| 147 | + }, |
121 | 148 | {
|
122 | 149 | type: "list",
|
123 | 150 | name: "start",
|
@@ -164,9 +191,10 @@ const questionsPullProject = [
|
164 | 191 | when(answers) {
|
165 | 192 | return answers.start == "existing";
|
166 | 193 | },
|
167 |
| - choices: async () => { |
| 194 | + choices: async (answers) => { |
168 | 195 | let response = await projectsList({
|
169 |
| - parseOutput: false |
| 196 | + parseOutput: false, |
| 197 | + queries: [JSON.stringify({ method: 'equal', attribute:'teamId', values: [answers.organization.id] })], |
170 | 198 | })
|
171 | 199 | let projects = response["projects"]
|
172 | 200 | let choices = projects.map((project, idx) => {
|
|
0 commit comments