@constructive-sdk/cli 0.12.7 → 0.12.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/admin/cli/commands/app-achievement.js +38 -15
- package/admin/cli/commands/app-admin-grant.js +38 -15
- package/admin/cli/commands/app-grant.js +40 -16
- package/admin/cli/commands/app-level-requirement.js +42 -17
- package/admin/cli/commands/app-level.js +40 -16
- package/admin/cli/commands/app-limit-default.js +32 -12
- package/admin/cli/commands/app-limit.js +36 -14
- package/admin/cli/commands/app-membership-default.js +40 -16
- package/admin/cli/commands/app-membership.js +58 -25
- package/admin/cli/commands/app-owner-grant.js +38 -15
- package/admin/cli/commands/app-permission-default.js +30 -11
- package/admin/cli/commands/app-permission.js +36 -14
- package/admin/cli/commands/app-step.js +38 -15
- package/admin/cli/commands/claimed-invite.js +38 -15
- package/admin/cli/commands/invite.js +50 -21
- package/admin/cli/commands/membership-type.js +34 -13
- package/admin/cli/commands/org-admin-grant.js +40 -16
- package/admin/cli/commands/org-chart-edge-grant.js +44 -18
- package/admin/cli/commands/org-chart-edge.js +42 -17
- package/admin/cli/commands/org-claimed-invite.js +40 -16
- package/admin/cli/commands/org-get-managers-record.js +30 -11
- package/admin/cli/commands/org-get-subordinates-record.js +30 -11
- package/admin/cli/commands/org-grant.js +42 -17
- package/admin/cli/commands/org-invite.js +54 -23
- package/admin/cli/commands/org-limit-default.js +32 -12
- package/admin/cli/commands/org-limit.js +38 -15
- package/admin/cli/commands/org-member.js +34 -13
- package/admin/cli/commands/org-membership-default.js +44 -18
- package/admin/cli/commands/org-membership.js +58 -25
- package/admin/cli/commands/org-owner-grant.js +40 -16
- package/admin/cli/commands/org-permission-default.js +32 -12
- package/admin/cli/commands/org-permission.js +36 -14
- package/admin/cli/utils.d.ts +38 -0
- package/admin/cli/utils.js +96 -0
- package/auth/cli/commands/audit-log.js +42 -17
- package/auth/cli/commands/connected-account.js +42 -17
- package/auth/cli/commands/crypto-address.js +40 -16
- package/auth/cli/commands/email.js +40 -16
- package/auth/cli/commands/phone-number.js +42 -17
- package/auth/cli/commands/role-type.js +30 -11
- package/auth/cli/commands/user.js +80 -16
- package/auth/cli/utils.d.ts +38 -0
- package/auth/cli/utils.js +96 -0
- package/esm/admin/cli/commands/app-achievement.js +39 -16
- package/esm/admin/cli/commands/app-admin-grant.js +39 -16
- package/esm/admin/cli/commands/app-grant.js +41 -17
- package/esm/admin/cli/commands/app-level-requirement.js +43 -18
- package/esm/admin/cli/commands/app-level.js +41 -17
- package/esm/admin/cli/commands/app-limit-default.js +33 -13
- package/esm/admin/cli/commands/app-limit.js +37 -15
- package/esm/admin/cli/commands/app-membership-default.js +41 -17
- package/esm/admin/cli/commands/app-membership.js +59 -26
- package/esm/admin/cli/commands/app-owner-grant.js +39 -16
- package/esm/admin/cli/commands/app-permission-default.js +31 -12
- package/esm/admin/cli/commands/app-permission.js +37 -15
- package/esm/admin/cli/commands/app-step.js +39 -16
- package/esm/admin/cli/commands/claimed-invite.js +39 -16
- package/esm/admin/cli/commands/invite.js +51 -22
- package/esm/admin/cli/commands/membership-type.js +35 -14
- package/esm/admin/cli/commands/org-admin-grant.js +41 -17
- package/esm/admin/cli/commands/org-chart-edge-grant.js +45 -19
- package/esm/admin/cli/commands/org-chart-edge.js +43 -18
- package/esm/admin/cli/commands/org-claimed-invite.js +41 -17
- package/esm/admin/cli/commands/org-get-managers-record.js +31 -12
- package/esm/admin/cli/commands/org-get-subordinates-record.js +31 -12
- package/esm/admin/cli/commands/org-grant.js +43 -18
- package/esm/admin/cli/commands/org-invite.js +55 -24
- package/esm/admin/cli/commands/org-limit-default.js +33 -13
- package/esm/admin/cli/commands/org-limit.js +39 -16
- package/esm/admin/cli/commands/org-member.js +35 -14
- package/esm/admin/cli/commands/org-membership-default.js +45 -19
- package/esm/admin/cli/commands/org-membership.js +59 -26
- package/esm/admin/cli/commands/org-owner-grant.js +41 -17
- package/esm/admin/cli/commands/org-permission-default.js +33 -13
- package/esm/admin/cli/commands/org-permission.js +37 -15
- package/esm/admin/cli/utils.d.ts +38 -0
- package/esm/admin/cli/utils.js +90 -0
- package/esm/auth/cli/commands/audit-log.js +43 -18
- package/esm/auth/cli/commands/connected-account.js +43 -18
- package/esm/auth/cli/commands/crypto-address.js +41 -17
- package/esm/auth/cli/commands/email.js +41 -17
- package/esm/auth/cli/commands/phone-number.js +43 -18
- package/esm/auth/cli/commands/role-type.js +31 -12
- package/esm/auth/cli/commands/user.js +81 -17
- package/esm/auth/cli/utils.d.ts +38 -0
- package/esm/auth/cli/utils.js +90 -0
- package/esm/objects/cli/commands/commit.js +45 -19
- package/esm/objects/cli/commands/get-all-record.js +31 -12
- package/esm/objects/cli/commands/object.js +41 -17
- package/esm/objects/cli/commands/ref.js +37 -15
- package/esm/objects/cli/commands/store.js +37 -15
- package/esm/objects/cli/utils.d.ts +38 -0
- package/esm/objects/cli/utils.js +90 -0
- package/esm/public/cli/commands/api-module.js +37 -15
- package/esm/public/cli/commands/api-schema.js +35 -14
- package/esm/public/cli/commands/api.js +41 -17
- package/esm/public/cli/commands/app-achievement.js +39 -16
- package/esm/public/cli/commands/app-admin-grant.js +39 -16
- package/esm/public/cli/commands/app-grant.js +41 -17
- package/esm/public/cli/commands/app-level-requirement.js +43 -18
- package/esm/public/cli/commands/app-level.js +41 -17
- package/esm/public/cli/commands/app-limit-default.js +33 -13
- package/esm/public/cli/commands/app-limit.js +37 -15
- package/esm/public/cli/commands/app-membership-default.js +41 -17
- package/esm/public/cli/commands/app-membership.js +59 -26
- package/esm/public/cli/commands/app-owner-grant.js +39 -16
- package/esm/public/cli/commands/app-permission-default.js +31 -12
- package/esm/public/cli/commands/app-permission.js +37 -15
- package/esm/public/cli/commands/app-step.js +39 -16
- package/esm/public/cli/commands/app.js +45 -19
- package/esm/public/cli/commands/ast-migration.js +53 -23
- package/esm/public/cli/commands/audit-log.js +43 -18
- package/esm/public/cli/commands/blueprint-template.js +67 -30
- package/esm/public/cli/commands/blueprint.js +61 -27
- package/esm/public/cli/commands/check-constraint.js +55 -24
- package/esm/public/cli/commands/claimed-invite.js +39 -16
- package/esm/public/cli/commands/commit.js +45 -19
- package/esm/public/cli/commands/connected-account.js +43 -18
- package/esm/public/cli/commands/connected-accounts-module.js +41 -17
- package/esm/public/cli/commands/crypto-address.js +41 -17
- package/esm/public/cli/commands/crypto-addresses-module.js +43 -18
- package/esm/public/cli/commands/crypto-auth-module.js +55 -24
- package/esm/public/cli/commands/database-provision-module.js +55 -24
- package/esm/public/cli/commands/database-transfer.js +55 -24
- package/esm/public/cli/commands/database.js +43 -18
- package/esm/public/cli/commands/default-ids-module.js +31 -12
- package/esm/public/cli/commands/default-privilege.js +41 -17
- package/esm/public/cli/commands/denormalized-table-field.js +51 -22
- package/esm/public/cli/commands/domain.js +39 -16
- package/esm/public/cli/commands/email.js +41 -17
- package/esm/public/cli/commands/emails-module.js +41 -17
- package/esm/public/cli/commands/embedding-chunk.js +63 -28
- package/esm/public/cli/commands/encrypted-secrets-module.js +37 -15
- package/esm/public/cli/commands/enum.js +51 -22
- package/esm/public/cli/commands/field.js +75 -34
- package/esm/public/cli/commands/foreign-key-constraint.js +63 -28
- package/esm/public/cli/commands/full-text-search.js +45 -19
- package/esm/public/cli/commands/get-all-record.js +31 -12
- package/esm/public/cli/commands/hierarchy-module.js +67 -30
- package/esm/public/cli/commands/index.js +65 -29
- package/esm/public/cli/commands/invite.js +51 -22
- package/esm/public/cli/commands/invites-module.js +55 -24
- package/esm/public/cli/commands/levels-module.js +79 -36
- package/esm/public/cli/commands/limits-module.js +63 -28
- package/esm/public/cli/commands/membership-type.js +35 -14
- package/esm/public/cli/commands/membership-types-module.js +37 -15
- package/esm/public/cli/commands/memberships-module.js +89 -41
- package/esm/public/cli/commands/migrate-file.js +33 -13
- package/esm/public/cli/commands/node-type-registry.js +89 -19
- package/esm/public/cli/commands/object.js +41 -17
- package/esm/public/cli/commands/org-admin-grant.js +41 -17
- package/esm/public/cli/commands/org-chart-edge-grant.js +45 -19
- package/esm/public/cli/commands/org-chart-edge.js +43 -18
- package/esm/public/cli/commands/org-claimed-invite.js +41 -17
- package/esm/public/cli/commands/org-get-managers-record.js +31 -12
- package/esm/public/cli/commands/org-get-subordinates-record.js +31 -12
- package/esm/public/cli/commands/org-grant.js +43 -18
- package/esm/public/cli/commands/org-invite.js +55 -24
- package/esm/public/cli/commands/org-limit-default.js +33 -13
- package/esm/public/cli/commands/org-limit.js +39 -16
- package/esm/public/cli/commands/org-member.js +35 -14
- package/esm/public/cli/commands/org-membership-default.js +45 -19
- package/esm/public/cli/commands/org-membership.js +59 -26
- package/esm/public/cli/commands/org-owner-grant.js +41 -17
- package/esm/public/cli/commands/org-permission-default.js +33 -13
- package/esm/public/cli/commands/org-permission.js +37 -15
- package/esm/public/cli/commands/permissions-module.js +61 -27
- package/esm/public/cli/commands/phone-number.js +43 -18
- package/esm/public/cli/commands/phone-numbers-module.js +41 -17
- package/esm/public/cli/commands/policy.js +61 -27
- package/esm/public/cli/commands/primary-key-constraint.js +53 -23
- package/esm/public/cli/commands/profiles-module.js +63 -28
- package/esm/public/cli/commands/ref.js +37 -15
- package/esm/public/cli/commands/relation-provision.js +89 -41
- package/esm/public/cli/commands/rls-module.js +49 -21
- package/esm/public/cli/commands/role-type.js +31 -12
- package/esm/public/cli/commands/schema-grant.js +39 -16
- package/esm/public/cli/commands/schema.js +55 -24
- package/esm/public/cli/commands/secrets-module.js +37 -15
- package/esm/public/cli/commands/secure-table-provision.js +63 -28
- package/esm/public/cli/commands/sessions-module.js +49 -21
- package/esm/public/cli/commands/site-metadatum.js +39 -16
- package/esm/public/cli/commands/site-module.js +37 -15
- package/esm/public/cli/commands/site-theme.js +35 -14
- package/esm/public/cli/commands/site.js +45 -19
- package/esm/public/cli/commands/sql-action.js +53 -23
- package/esm/public/cli/commands/store.js +37 -15
- package/esm/public/cli/commands/table-grant.js +45 -19
- package/esm/public/cli/commands/table-template-module.js +45 -19
- package/esm/public/cli/commands/table.js +65 -29
- package/esm/public/cli/commands/trigger-function.js +39 -16
- package/esm/public/cli/commands/trigger.js +53 -23
- package/esm/public/cli/commands/unique-constraint.js +55 -24
- package/esm/public/cli/commands/user-auth-module.js +79 -36
- package/esm/public/cli/commands/user.js +81 -17
- package/esm/public/cli/commands/users-module.js +41 -17
- package/esm/public/cli/commands/view-grant.js +41 -17
- package/esm/public/cli/commands/view-rule.js +39 -16
- package/esm/public/cli/commands/view-table.js +35 -14
- package/esm/public/cli/commands/view.js +59 -26
- package/esm/public/cli/commands.js +3 -3
- package/esm/public/cli/executor.d.ts +1 -1
- package/esm/public/cli/utils.d.ts +38 -0
- package/esm/public/cli/utils.js +90 -0
- package/esm/public/orm/index.d.ts +2 -2
- package/esm/public/orm/index.js +2 -2
- package/esm/public/orm/input-types.d.ts +161 -147
- package/esm/public/orm/models/index.d.ts +1 -1
- package/esm/public/orm/models/index.js +1 -1
- package/objects/cli/commands/commit.js +44 -18
- package/objects/cli/commands/get-all-record.js +30 -11
- package/objects/cli/commands/object.js +40 -16
- package/objects/cli/commands/ref.js +36 -14
- package/objects/cli/commands/store.js +36 -14
- package/objects/cli/utils.d.ts +38 -0
- package/objects/cli/utils.js +96 -0
- package/package.json +3 -3
- package/public/cli/commands/api-module.js +36 -14
- package/public/cli/commands/api-schema.js +34 -13
- package/public/cli/commands/api.js +40 -16
- package/public/cli/commands/app-achievement.js +38 -15
- package/public/cli/commands/app-admin-grant.js +38 -15
- package/public/cli/commands/app-grant.js +40 -16
- package/public/cli/commands/app-level-requirement.js +42 -17
- package/public/cli/commands/app-level.js +40 -16
- package/public/cli/commands/app-limit-default.js +32 -12
- package/public/cli/commands/app-limit.js +36 -14
- package/public/cli/commands/app-membership-default.js +40 -16
- package/public/cli/commands/app-membership.js +58 -25
- package/public/cli/commands/app-owner-grant.js +38 -15
- package/public/cli/commands/app-permission-default.js +30 -11
- package/public/cli/commands/app-permission.js +36 -14
- package/public/cli/commands/app-step.js +38 -15
- package/public/cli/commands/app.js +44 -18
- package/public/cli/commands/ast-migration.js +52 -22
- package/public/cli/commands/audit-log.js +42 -17
- package/public/cli/commands/blueprint-template.js +66 -29
- package/public/cli/commands/blueprint.js +60 -26
- package/public/cli/commands/check-constraint.js +54 -23
- package/public/cli/commands/claimed-invite.js +38 -15
- package/public/cli/commands/commit.js +44 -18
- package/public/cli/commands/connected-account.js +42 -17
- package/public/cli/commands/connected-accounts-module.js +40 -16
- package/public/cli/commands/crypto-address.js +40 -16
- package/public/cli/commands/crypto-addresses-module.js +42 -17
- package/public/cli/commands/crypto-auth-module.js +54 -23
- package/public/cli/commands/database-provision-module.js +54 -23
- package/public/cli/commands/database-transfer.js +54 -23
- package/public/cli/commands/database.js +42 -17
- package/public/cli/commands/default-ids-module.js +30 -11
- package/public/cli/commands/default-privilege.js +40 -16
- package/public/cli/commands/denormalized-table-field.js +50 -21
- package/public/cli/commands/domain.js +38 -15
- package/public/cli/commands/email.js +40 -16
- package/public/cli/commands/emails-module.js +40 -16
- package/public/cli/commands/embedding-chunk.js +62 -27
- package/public/cli/commands/encrypted-secrets-module.js +36 -14
- package/public/cli/commands/enum.js +50 -21
- package/public/cli/commands/field.js +74 -33
- package/public/cli/commands/foreign-key-constraint.js +62 -27
- package/public/cli/commands/full-text-search.js +44 -18
- package/public/cli/commands/get-all-record.js +30 -11
- package/public/cli/commands/hierarchy-module.js +66 -29
- package/public/cli/commands/index.js +64 -28
- package/public/cli/commands/invite.js +50 -21
- package/public/cli/commands/invites-module.js +54 -23
- package/public/cli/commands/levels-module.js +78 -35
- package/public/cli/commands/limits-module.js +62 -27
- package/public/cli/commands/membership-type.js +34 -13
- package/public/cli/commands/membership-types-module.js +36 -14
- package/public/cli/commands/memberships-module.js +88 -40
- package/public/cli/commands/migrate-file.js +32 -12
- package/public/cli/commands/node-type-registry.js +88 -18
- package/public/cli/commands/object.js +40 -16
- package/public/cli/commands/org-admin-grant.js +40 -16
- package/public/cli/commands/org-chart-edge-grant.js +44 -18
- package/public/cli/commands/org-chart-edge.js +42 -17
- package/public/cli/commands/org-claimed-invite.js +40 -16
- package/public/cli/commands/org-get-managers-record.js +30 -11
- package/public/cli/commands/org-get-subordinates-record.js +30 -11
- package/public/cli/commands/org-grant.js +42 -17
- package/public/cli/commands/org-invite.js +54 -23
- package/public/cli/commands/org-limit-default.js +32 -12
- package/public/cli/commands/org-limit.js +38 -15
- package/public/cli/commands/org-member.js +34 -13
- package/public/cli/commands/org-membership-default.js +44 -18
- package/public/cli/commands/org-membership.js +58 -25
- package/public/cli/commands/org-owner-grant.js +40 -16
- package/public/cli/commands/org-permission-default.js +32 -12
- package/public/cli/commands/org-permission.js +36 -14
- package/public/cli/commands/permissions-module.js +60 -26
- package/public/cli/commands/phone-number.js +42 -17
- package/public/cli/commands/phone-numbers-module.js +40 -16
- package/public/cli/commands/policy.js +60 -26
- package/public/cli/commands/primary-key-constraint.js +52 -22
- package/public/cli/commands/profiles-module.js +62 -27
- package/public/cli/commands/ref.js +36 -14
- package/public/cli/commands/relation-provision.js +88 -40
- package/public/cli/commands/rls-module.js +48 -20
- package/public/cli/commands/role-type.js +30 -11
- package/public/cli/commands/schema-grant.js +38 -15
- package/public/cli/commands/schema.js +54 -23
- package/public/cli/commands/secrets-module.js +36 -14
- package/public/cli/commands/secure-table-provision.js +62 -27
- package/public/cli/commands/sessions-module.js +48 -20
- package/public/cli/commands/site-metadatum.js +38 -15
- package/public/cli/commands/site-module.js +36 -14
- package/public/cli/commands/site-theme.js +34 -13
- package/public/cli/commands/site.js +44 -18
- package/public/cli/commands/sql-action.js +52 -22
- package/public/cli/commands/store.js +36 -14
- package/public/cli/commands/table-grant.js +44 -18
- package/public/cli/commands/table-template-module.js +44 -18
- package/public/cli/commands/table.js +64 -28
- package/public/cli/commands/trigger-function.js +38 -15
- package/public/cli/commands/trigger.js +52 -22
- package/public/cli/commands/unique-constraint.js +54 -23
- package/public/cli/commands/user-auth-module.js +78 -35
- package/public/cli/commands/user.js +80 -16
- package/public/cli/commands/users-module.js +40 -16
- package/public/cli/commands/view-grant.js +40 -16
- package/public/cli/commands/view-rule.js +38 -15
- package/public/cli/commands/view-table.js +34 -13
- package/public/cli/commands/view.js +58 -25
- package/public/cli/commands.js +3 -3
- package/public/cli/executor.d.ts +1 -1
- package/public/cli/utils.d.ts +38 -0
- package/public/cli/utils.js +96 -0
- package/public/orm/index.d.ts +2 -2
- package/public/orm/index.js +2 -2
- package/public/orm/input-types.d.ts +161 -147
- package/public/orm/models/index.d.ts +1 -1
- package/public/orm/models/index.js +4 -4
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { extractFirst } from 'inquirerer';
|
|
7
7
|
import { getClient } from '../executor';
|
|
8
|
-
import { coerceAnswers, stripUndefined } from '../utils';
|
|
8
|
+
import { coerceAnswers, parseFindFirstArgs, parseFindManyArgs, stripUndefined } from '../utils';
|
|
9
9
|
const fieldSchema = {
|
|
10
10
|
id: 'uuid',
|
|
11
11
|
username: 'string',
|
|
@@ -19,7 +19,7 @@ const fieldSchema = {
|
|
|
19
19
|
displayNameTrgmSimilarity: 'float',
|
|
20
20
|
searchScore: 'float',
|
|
21
21
|
};
|
|
22
|
-
const usage = '\nuser <command>\n\nCommands:\n list List
|
|
22
|
+
const usage = '\nuser <command>\n\nCommands:\n list List user records\n find-first Find first matching user record\n search <query> Search user records\n get Get a user by ID\n create Create a new user\n update Update an existing user\n delete Delete a user\n\nList Options:\n --limit <n> Max number of records to return (forward pagination)\n --last <n> Number of records from the end (backward pagination)\n --after <cursor> Cursor for forward pagination\n --before <cursor> Cursor for backward pagination\n --offset <n> Number of records to skip\n --select <fields> Comma-separated list of fields to return\n --where.<field>.<op> Filter (dot-notation, e.g. --where.name.equalTo foo)\n --condition.<f>.<op> Condition filter (dot-notation)\n --orderBy <values> Comma-separated ordering values (e.g. NAME_ASC,CREATED_AT_DESC)\n\nFind-First Options:\n --select <fields> Comma-separated list of fields to return\n --where.<field>.<op> Filter (dot-notation, e.g. --where.status.equalTo active)\n --condition.<f>.<op> Condition filter (dot-notation)\n\nSearch Options:\n <query> Search query string (required)\n --limit <n> Max number of records to return\n --offset <n> Number of records to skip\n --select <fields> Comma-separated list of fields to return\n --orderBy <values> Comma-separated list of ordering values\n\n --help, -h Show this help message\n';
|
|
23
23
|
export default async (argv, prompter, _options) => {
|
|
24
24
|
if (argv.help || argv.h) {
|
|
25
25
|
console.log(usage);
|
|
@@ -32,7 +32,7 @@ export default async (argv, prompter, _options) => {
|
|
|
32
32
|
type: 'autocomplete',
|
|
33
33
|
name: 'subcommand',
|
|
34
34
|
message: 'What do you want to do?',
|
|
35
|
-
options: ['list', 'get', 'create', 'update', 'delete'],
|
|
35
|
+
options: ['list', 'find-first', 'search', 'get', 'create', 'update', 'delete'],
|
|
36
36
|
},
|
|
37
37
|
]);
|
|
38
38
|
return handleTableSubcommand(answer.subcommand, newArgv, prompter);
|
|
@@ -43,6 +43,10 @@ async function handleTableSubcommand(subcommand, argv, prompter) {
|
|
|
43
43
|
switch (subcommand) {
|
|
44
44
|
case 'list':
|
|
45
45
|
return handleList(argv, prompter);
|
|
46
|
+
case 'find-first':
|
|
47
|
+
return handleFindFirst(argv, prompter);
|
|
48
|
+
case 'search':
|
|
49
|
+
return handleSearch(argv, prompter);
|
|
46
50
|
case 'get':
|
|
47
51
|
return handleGet(argv, prompter);
|
|
48
52
|
case 'create':
|
|
@@ -56,22 +60,20 @@ async function handleTableSubcommand(subcommand, argv, prompter) {
|
|
|
56
60
|
process.exit(1);
|
|
57
61
|
}
|
|
58
62
|
}
|
|
59
|
-
async function handleList(
|
|
63
|
+
async function handleList(argv, _prompter) {
|
|
60
64
|
try {
|
|
65
|
+
const defaultSelect = {
|
|
66
|
+
id: true,
|
|
67
|
+
username: true,
|
|
68
|
+
displayName: true,
|
|
69
|
+
profilePicture: true,
|
|
70
|
+
type: true,
|
|
71
|
+
createdAt: true,
|
|
72
|
+
updatedAt: true,
|
|
73
|
+
};
|
|
74
|
+
const findManyArgs = parseFindManyArgs(argv, defaultSelect);
|
|
61
75
|
const client = getClient();
|
|
62
|
-
const result = await client.user
|
|
63
|
-
.findMany({
|
|
64
|
-
select: {
|
|
65
|
-
id: true,
|
|
66
|
-
username: true,
|
|
67
|
-
displayName: true,
|
|
68
|
-
profilePicture: true,
|
|
69
|
-
type: true,
|
|
70
|
-
createdAt: true,
|
|
71
|
-
updatedAt: true,
|
|
72
|
-
},
|
|
73
|
-
})
|
|
74
|
-
.execute();
|
|
76
|
+
const result = await client.user.findMany(findManyArgs).execute();
|
|
75
77
|
console.log(JSON.stringify(result, null, 2));
|
|
76
78
|
}
|
|
77
79
|
catch (error) {
|
|
@@ -82,6 +84,68 @@ async function handleList(_argv, _prompter) {
|
|
|
82
84
|
process.exit(1);
|
|
83
85
|
}
|
|
84
86
|
}
|
|
87
|
+
async function handleFindFirst(argv, _prompter) {
|
|
88
|
+
try {
|
|
89
|
+
const defaultSelect = {
|
|
90
|
+
id: true,
|
|
91
|
+
username: true,
|
|
92
|
+
displayName: true,
|
|
93
|
+
profilePicture: true,
|
|
94
|
+
type: true,
|
|
95
|
+
createdAt: true,
|
|
96
|
+
updatedAt: true,
|
|
97
|
+
};
|
|
98
|
+
const findFirstArgs = parseFindFirstArgs(argv, defaultSelect);
|
|
99
|
+
const client = getClient();
|
|
100
|
+
const result = await client.user.findFirst(findFirstArgs).execute();
|
|
101
|
+
console.log(JSON.stringify(result, null, 2));
|
|
102
|
+
}
|
|
103
|
+
catch (error) {
|
|
104
|
+
console.error('Failed to find record.');
|
|
105
|
+
if (error instanceof Error) {
|
|
106
|
+
console.error(error.message);
|
|
107
|
+
}
|
|
108
|
+
process.exit(1);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
async function handleSearch(argv, _prompter) {
|
|
112
|
+
try {
|
|
113
|
+
const query = Array.isArray(argv._) && argv._.length > 0 ? String(argv._[0]) : undefined;
|
|
114
|
+
if (!query) {
|
|
115
|
+
console.error('Error: search requires a <query> argument');
|
|
116
|
+
process.exit(1);
|
|
117
|
+
}
|
|
118
|
+
const searchWhere = {
|
|
119
|
+
searchTsv: {
|
|
120
|
+
query,
|
|
121
|
+
},
|
|
122
|
+
trgmDisplayName: {
|
|
123
|
+
value: query,
|
|
124
|
+
threshold: 0.3,
|
|
125
|
+
},
|
|
126
|
+
};
|
|
127
|
+
const defaultSelect = {
|
|
128
|
+
id: true,
|
|
129
|
+
username: true,
|
|
130
|
+
displayName: true,
|
|
131
|
+
profilePicture: true,
|
|
132
|
+
type: true,
|
|
133
|
+
createdAt: true,
|
|
134
|
+
updatedAt: true,
|
|
135
|
+
};
|
|
136
|
+
const findManyArgs = parseFindManyArgs(argv, defaultSelect, searchWhere);
|
|
137
|
+
const client = getClient();
|
|
138
|
+
const result = await client.user.findMany(findManyArgs).execute();
|
|
139
|
+
console.log(JSON.stringify(result, null, 2));
|
|
140
|
+
}
|
|
141
|
+
catch (error) {
|
|
142
|
+
console.error('Failed to search records.');
|
|
143
|
+
if (error instanceof Error) {
|
|
144
|
+
console.error(error.message);
|
|
145
|
+
}
|
|
146
|
+
process.exit(1);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
85
149
|
async function handleGet(argv, prompter) {
|
|
86
150
|
try {
|
|
87
151
|
const answers = await prompter.prompt(argv, [
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { extractFirst } from 'inquirerer';
|
|
7
7
|
import { getClient } from '../executor';
|
|
8
|
-
import { coerceAnswers, stripUndefined } from '../utils';
|
|
8
|
+
import { coerceAnswers, parseFindFirstArgs, parseFindManyArgs, stripUndefined } from '../utils';
|
|
9
9
|
const fieldSchema = {
|
|
10
10
|
id: 'uuid',
|
|
11
11
|
databaseId: 'uuid',
|
|
@@ -15,7 +15,7 @@ const fieldSchema = {
|
|
|
15
15
|
typeTableId: 'uuid',
|
|
16
16
|
typeTableName: 'string',
|
|
17
17
|
};
|
|
18
|
-
const usage = '\nusers-module <command>\n\nCommands:\n list List
|
|
18
|
+
const usage = '\nusers-module <command>\n\nCommands:\n list List usersModule records\n find-first Find first matching usersModule record\n get Get a usersModule by ID\n create Create a new usersModule\n update Update an existing usersModule\n delete Delete a usersModule\n\nList Options:\n --limit <n> Max number of records to return (forward pagination)\n --last <n> Number of records from the end (backward pagination)\n --after <cursor> Cursor for forward pagination\n --before <cursor> Cursor for backward pagination\n --offset <n> Number of records to skip\n --select <fields> Comma-separated list of fields to return\n --where.<field>.<op> Filter (dot-notation, e.g. --where.name.equalTo foo)\n --condition.<f>.<op> Condition filter (dot-notation)\n --orderBy <values> Comma-separated ordering values (e.g. NAME_ASC,CREATED_AT_DESC)\n\nFind-First Options:\n --select <fields> Comma-separated list of fields to return\n --where.<field>.<op> Filter (dot-notation, e.g. --where.status.equalTo active)\n --condition.<f>.<op> Condition filter (dot-notation)\n\n --help, -h Show this help message\n';
|
|
19
19
|
export default async (argv, prompter, _options) => {
|
|
20
20
|
if (argv.help || argv.h) {
|
|
21
21
|
console.log(usage);
|
|
@@ -28,7 +28,7 @@ export default async (argv, prompter, _options) => {
|
|
|
28
28
|
type: 'autocomplete',
|
|
29
29
|
name: 'subcommand',
|
|
30
30
|
message: 'What do you want to do?',
|
|
31
|
-
options: ['list', 'get', 'create', 'update', 'delete'],
|
|
31
|
+
options: ['list', 'find-first', 'get', 'create', 'update', 'delete'],
|
|
32
32
|
},
|
|
33
33
|
]);
|
|
34
34
|
return handleTableSubcommand(answer.subcommand, newArgv, prompter);
|
|
@@ -39,6 +39,8 @@ async function handleTableSubcommand(subcommand, argv, prompter) {
|
|
|
39
39
|
switch (subcommand) {
|
|
40
40
|
case 'list':
|
|
41
41
|
return handleList(argv, prompter);
|
|
42
|
+
case 'find-first':
|
|
43
|
+
return handleFindFirst(argv, prompter);
|
|
42
44
|
case 'get':
|
|
43
45
|
return handleGet(argv, prompter);
|
|
44
46
|
case 'create':
|
|
@@ -52,22 +54,20 @@ async function handleTableSubcommand(subcommand, argv, prompter) {
|
|
|
52
54
|
process.exit(1);
|
|
53
55
|
}
|
|
54
56
|
}
|
|
55
|
-
async function handleList(
|
|
57
|
+
async function handleList(argv, _prompter) {
|
|
56
58
|
try {
|
|
59
|
+
const defaultSelect = {
|
|
60
|
+
id: true,
|
|
61
|
+
databaseId: true,
|
|
62
|
+
schemaId: true,
|
|
63
|
+
tableId: true,
|
|
64
|
+
tableName: true,
|
|
65
|
+
typeTableId: true,
|
|
66
|
+
typeTableName: true,
|
|
67
|
+
};
|
|
68
|
+
const findManyArgs = parseFindManyArgs(argv, defaultSelect);
|
|
57
69
|
const client = getClient();
|
|
58
|
-
const result = await client.usersModule
|
|
59
|
-
.findMany({
|
|
60
|
-
select: {
|
|
61
|
-
id: true,
|
|
62
|
-
databaseId: true,
|
|
63
|
-
schemaId: true,
|
|
64
|
-
tableId: true,
|
|
65
|
-
tableName: true,
|
|
66
|
-
typeTableId: true,
|
|
67
|
-
typeTableName: true,
|
|
68
|
-
},
|
|
69
|
-
})
|
|
70
|
-
.execute();
|
|
70
|
+
const result = await client.usersModule.findMany(findManyArgs).execute();
|
|
71
71
|
console.log(JSON.stringify(result, null, 2));
|
|
72
72
|
}
|
|
73
73
|
catch (error) {
|
|
@@ -78,6 +78,30 @@ async function handleList(_argv, _prompter) {
|
|
|
78
78
|
process.exit(1);
|
|
79
79
|
}
|
|
80
80
|
}
|
|
81
|
+
async function handleFindFirst(argv, _prompter) {
|
|
82
|
+
try {
|
|
83
|
+
const defaultSelect = {
|
|
84
|
+
id: true,
|
|
85
|
+
databaseId: true,
|
|
86
|
+
schemaId: true,
|
|
87
|
+
tableId: true,
|
|
88
|
+
tableName: true,
|
|
89
|
+
typeTableId: true,
|
|
90
|
+
typeTableName: true,
|
|
91
|
+
};
|
|
92
|
+
const findFirstArgs = parseFindFirstArgs(argv, defaultSelect);
|
|
93
|
+
const client = getClient();
|
|
94
|
+
const result = await client.usersModule.findFirst(findFirstArgs).execute();
|
|
95
|
+
console.log(JSON.stringify(result, null, 2));
|
|
96
|
+
}
|
|
97
|
+
catch (error) {
|
|
98
|
+
console.error('Failed to find record.');
|
|
99
|
+
if (error instanceof Error) {
|
|
100
|
+
console.error(error.message);
|
|
101
|
+
}
|
|
102
|
+
process.exit(1);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
81
105
|
async function handleGet(argv, prompter) {
|
|
82
106
|
try {
|
|
83
107
|
const answers = await prompter.prompt(argv, [
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { extractFirst } from 'inquirerer';
|
|
7
7
|
import { getClient } from '../executor';
|
|
8
|
-
import { coerceAnswers, stripUndefined } from '../utils';
|
|
8
|
+
import { coerceAnswers, parseFindFirstArgs, parseFindManyArgs, stripUndefined } from '../utils';
|
|
9
9
|
const fieldSchema = {
|
|
10
10
|
id: 'uuid',
|
|
11
11
|
databaseId: 'uuid',
|
|
@@ -15,7 +15,7 @@ const fieldSchema = {
|
|
|
15
15
|
withGrantOption: 'boolean',
|
|
16
16
|
isGrant: 'boolean',
|
|
17
17
|
};
|
|
18
|
-
const usage = '\nview-grant <command>\n\nCommands:\n list List
|
|
18
|
+
const usage = '\nview-grant <command>\n\nCommands:\n list List viewGrant records\n find-first Find first matching viewGrant record\n get Get a viewGrant by ID\n create Create a new viewGrant\n update Update an existing viewGrant\n delete Delete a viewGrant\n\nList Options:\n --limit <n> Max number of records to return (forward pagination)\n --last <n> Number of records from the end (backward pagination)\n --after <cursor> Cursor for forward pagination\n --before <cursor> Cursor for backward pagination\n --offset <n> Number of records to skip\n --select <fields> Comma-separated list of fields to return\n --where.<field>.<op> Filter (dot-notation, e.g. --where.name.equalTo foo)\n --condition.<f>.<op> Condition filter (dot-notation)\n --orderBy <values> Comma-separated ordering values (e.g. NAME_ASC,CREATED_AT_DESC)\n\nFind-First Options:\n --select <fields> Comma-separated list of fields to return\n --where.<field>.<op> Filter (dot-notation, e.g. --where.status.equalTo active)\n --condition.<f>.<op> Condition filter (dot-notation)\n\n --help, -h Show this help message\n';
|
|
19
19
|
export default async (argv, prompter, _options) => {
|
|
20
20
|
if (argv.help || argv.h) {
|
|
21
21
|
console.log(usage);
|
|
@@ -28,7 +28,7 @@ export default async (argv, prompter, _options) => {
|
|
|
28
28
|
type: 'autocomplete',
|
|
29
29
|
name: 'subcommand',
|
|
30
30
|
message: 'What do you want to do?',
|
|
31
|
-
options: ['list', 'get', 'create', 'update', 'delete'],
|
|
31
|
+
options: ['list', 'find-first', 'get', 'create', 'update', 'delete'],
|
|
32
32
|
},
|
|
33
33
|
]);
|
|
34
34
|
return handleTableSubcommand(answer.subcommand, newArgv, prompter);
|
|
@@ -39,6 +39,8 @@ async function handleTableSubcommand(subcommand, argv, prompter) {
|
|
|
39
39
|
switch (subcommand) {
|
|
40
40
|
case 'list':
|
|
41
41
|
return handleList(argv, prompter);
|
|
42
|
+
case 'find-first':
|
|
43
|
+
return handleFindFirst(argv, prompter);
|
|
42
44
|
case 'get':
|
|
43
45
|
return handleGet(argv, prompter);
|
|
44
46
|
case 'create':
|
|
@@ -52,22 +54,20 @@ async function handleTableSubcommand(subcommand, argv, prompter) {
|
|
|
52
54
|
process.exit(1);
|
|
53
55
|
}
|
|
54
56
|
}
|
|
55
|
-
async function handleList(
|
|
57
|
+
async function handleList(argv, _prompter) {
|
|
56
58
|
try {
|
|
59
|
+
const defaultSelect = {
|
|
60
|
+
id: true,
|
|
61
|
+
databaseId: true,
|
|
62
|
+
viewId: true,
|
|
63
|
+
granteeName: true,
|
|
64
|
+
privilege: true,
|
|
65
|
+
withGrantOption: true,
|
|
66
|
+
isGrant: true,
|
|
67
|
+
};
|
|
68
|
+
const findManyArgs = parseFindManyArgs(argv, defaultSelect);
|
|
57
69
|
const client = getClient();
|
|
58
|
-
const result = await client.viewGrant
|
|
59
|
-
.findMany({
|
|
60
|
-
select: {
|
|
61
|
-
id: true,
|
|
62
|
-
databaseId: true,
|
|
63
|
-
viewId: true,
|
|
64
|
-
granteeName: true,
|
|
65
|
-
privilege: true,
|
|
66
|
-
withGrantOption: true,
|
|
67
|
-
isGrant: true,
|
|
68
|
-
},
|
|
69
|
-
})
|
|
70
|
-
.execute();
|
|
70
|
+
const result = await client.viewGrant.findMany(findManyArgs).execute();
|
|
71
71
|
console.log(JSON.stringify(result, null, 2));
|
|
72
72
|
}
|
|
73
73
|
catch (error) {
|
|
@@ -78,6 +78,30 @@ async function handleList(_argv, _prompter) {
|
|
|
78
78
|
process.exit(1);
|
|
79
79
|
}
|
|
80
80
|
}
|
|
81
|
+
async function handleFindFirst(argv, _prompter) {
|
|
82
|
+
try {
|
|
83
|
+
const defaultSelect = {
|
|
84
|
+
id: true,
|
|
85
|
+
databaseId: true,
|
|
86
|
+
viewId: true,
|
|
87
|
+
granteeName: true,
|
|
88
|
+
privilege: true,
|
|
89
|
+
withGrantOption: true,
|
|
90
|
+
isGrant: true,
|
|
91
|
+
};
|
|
92
|
+
const findFirstArgs = parseFindFirstArgs(argv, defaultSelect);
|
|
93
|
+
const client = getClient();
|
|
94
|
+
const result = await client.viewGrant.findFirst(findFirstArgs).execute();
|
|
95
|
+
console.log(JSON.stringify(result, null, 2));
|
|
96
|
+
}
|
|
97
|
+
catch (error) {
|
|
98
|
+
console.error('Failed to find record.');
|
|
99
|
+
if (error instanceof Error) {
|
|
100
|
+
console.error(error.message);
|
|
101
|
+
}
|
|
102
|
+
process.exit(1);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
81
105
|
async function handleGet(argv, prompter) {
|
|
82
106
|
try {
|
|
83
107
|
const answers = await prompter.prompt(argv, [
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { extractFirst } from 'inquirerer';
|
|
7
7
|
import { getClient } from '../executor';
|
|
8
|
-
import { coerceAnswers, stripUndefined } from '../utils';
|
|
8
|
+
import { coerceAnswers, parseFindFirstArgs, parseFindManyArgs, stripUndefined } from '../utils';
|
|
9
9
|
const fieldSchema = {
|
|
10
10
|
id: 'uuid',
|
|
11
11
|
databaseId: 'uuid',
|
|
@@ -14,7 +14,7 @@ const fieldSchema = {
|
|
|
14
14
|
event: 'string',
|
|
15
15
|
action: 'string',
|
|
16
16
|
};
|
|
17
|
-
const usage = '\nview-rule <command>\n\nCommands:\n list List
|
|
17
|
+
const usage = '\nview-rule <command>\n\nCommands:\n list List viewRule records\n find-first Find first matching viewRule record\n get Get a viewRule by ID\n create Create a new viewRule\n update Update an existing viewRule\n delete Delete a viewRule\n\nList Options:\n --limit <n> Max number of records to return (forward pagination)\n --last <n> Number of records from the end (backward pagination)\n --after <cursor> Cursor for forward pagination\n --before <cursor> Cursor for backward pagination\n --offset <n> Number of records to skip\n --select <fields> Comma-separated list of fields to return\n --where.<field>.<op> Filter (dot-notation, e.g. --where.name.equalTo foo)\n --condition.<f>.<op> Condition filter (dot-notation)\n --orderBy <values> Comma-separated ordering values (e.g. NAME_ASC,CREATED_AT_DESC)\n\nFind-First Options:\n --select <fields> Comma-separated list of fields to return\n --where.<field>.<op> Filter (dot-notation, e.g. --where.status.equalTo active)\n --condition.<f>.<op> Condition filter (dot-notation)\n\n --help, -h Show this help message\n';
|
|
18
18
|
export default async (argv, prompter, _options) => {
|
|
19
19
|
if (argv.help || argv.h) {
|
|
20
20
|
console.log(usage);
|
|
@@ -27,7 +27,7 @@ export default async (argv, prompter, _options) => {
|
|
|
27
27
|
type: 'autocomplete',
|
|
28
28
|
name: 'subcommand',
|
|
29
29
|
message: 'What do you want to do?',
|
|
30
|
-
options: ['list', 'get', 'create', 'update', 'delete'],
|
|
30
|
+
options: ['list', 'find-first', 'get', 'create', 'update', 'delete'],
|
|
31
31
|
},
|
|
32
32
|
]);
|
|
33
33
|
return handleTableSubcommand(answer.subcommand, newArgv, prompter);
|
|
@@ -38,6 +38,8 @@ async function handleTableSubcommand(subcommand, argv, prompter) {
|
|
|
38
38
|
switch (subcommand) {
|
|
39
39
|
case 'list':
|
|
40
40
|
return handleList(argv, prompter);
|
|
41
|
+
case 'find-first':
|
|
42
|
+
return handleFindFirst(argv, prompter);
|
|
41
43
|
case 'get':
|
|
42
44
|
return handleGet(argv, prompter);
|
|
43
45
|
case 'create':
|
|
@@ -51,21 +53,19 @@ async function handleTableSubcommand(subcommand, argv, prompter) {
|
|
|
51
53
|
process.exit(1);
|
|
52
54
|
}
|
|
53
55
|
}
|
|
54
|
-
async function handleList(
|
|
56
|
+
async function handleList(argv, _prompter) {
|
|
55
57
|
try {
|
|
58
|
+
const defaultSelect = {
|
|
59
|
+
id: true,
|
|
60
|
+
databaseId: true,
|
|
61
|
+
viewId: true,
|
|
62
|
+
name: true,
|
|
63
|
+
event: true,
|
|
64
|
+
action: true,
|
|
65
|
+
};
|
|
66
|
+
const findManyArgs = parseFindManyArgs(argv, defaultSelect);
|
|
56
67
|
const client = getClient();
|
|
57
|
-
const result = await client.viewRule
|
|
58
|
-
.findMany({
|
|
59
|
-
select: {
|
|
60
|
-
id: true,
|
|
61
|
-
databaseId: true,
|
|
62
|
-
viewId: true,
|
|
63
|
-
name: true,
|
|
64
|
-
event: true,
|
|
65
|
-
action: true,
|
|
66
|
-
},
|
|
67
|
-
})
|
|
68
|
-
.execute();
|
|
68
|
+
const result = await client.viewRule.findMany(findManyArgs).execute();
|
|
69
69
|
console.log(JSON.stringify(result, null, 2));
|
|
70
70
|
}
|
|
71
71
|
catch (error) {
|
|
@@ -76,6 +76,29 @@ async function handleList(_argv, _prompter) {
|
|
|
76
76
|
process.exit(1);
|
|
77
77
|
}
|
|
78
78
|
}
|
|
79
|
+
async function handleFindFirst(argv, _prompter) {
|
|
80
|
+
try {
|
|
81
|
+
const defaultSelect = {
|
|
82
|
+
id: true,
|
|
83
|
+
databaseId: true,
|
|
84
|
+
viewId: true,
|
|
85
|
+
name: true,
|
|
86
|
+
event: true,
|
|
87
|
+
action: true,
|
|
88
|
+
};
|
|
89
|
+
const findFirstArgs = parseFindFirstArgs(argv, defaultSelect);
|
|
90
|
+
const client = getClient();
|
|
91
|
+
const result = await client.viewRule.findFirst(findFirstArgs).execute();
|
|
92
|
+
console.log(JSON.stringify(result, null, 2));
|
|
93
|
+
}
|
|
94
|
+
catch (error) {
|
|
95
|
+
console.error('Failed to find record.');
|
|
96
|
+
if (error instanceof Error) {
|
|
97
|
+
console.error(error.message);
|
|
98
|
+
}
|
|
99
|
+
process.exit(1);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
79
102
|
async function handleGet(argv, prompter) {
|
|
80
103
|
try {
|
|
81
104
|
const answers = await prompter.prompt(argv, [
|
|
@@ -5,14 +5,14 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { extractFirst } from 'inquirerer';
|
|
7
7
|
import { getClient } from '../executor';
|
|
8
|
-
import { coerceAnswers, stripUndefined } from '../utils';
|
|
8
|
+
import { coerceAnswers, parseFindFirstArgs, parseFindManyArgs, stripUndefined } from '../utils';
|
|
9
9
|
const fieldSchema = {
|
|
10
10
|
id: 'uuid',
|
|
11
11
|
viewId: 'uuid',
|
|
12
12
|
tableId: 'uuid',
|
|
13
13
|
joinOrder: 'int',
|
|
14
14
|
};
|
|
15
|
-
const usage = '\nview-table <command>\n\nCommands:\n list List
|
|
15
|
+
const usage = '\nview-table <command>\n\nCommands:\n list List viewTable records\n find-first Find first matching viewTable record\n get Get a viewTable by ID\n create Create a new viewTable\n update Update an existing viewTable\n delete Delete a viewTable\n\nList Options:\n --limit <n> Max number of records to return (forward pagination)\n --last <n> Number of records from the end (backward pagination)\n --after <cursor> Cursor for forward pagination\n --before <cursor> Cursor for backward pagination\n --offset <n> Number of records to skip\n --select <fields> Comma-separated list of fields to return\n --where.<field>.<op> Filter (dot-notation, e.g. --where.name.equalTo foo)\n --condition.<f>.<op> Condition filter (dot-notation)\n --orderBy <values> Comma-separated ordering values (e.g. NAME_ASC,CREATED_AT_DESC)\n\nFind-First Options:\n --select <fields> Comma-separated list of fields to return\n --where.<field>.<op> Filter (dot-notation, e.g. --where.status.equalTo active)\n --condition.<f>.<op> Condition filter (dot-notation)\n\n --help, -h Show this help message\n';
|
|
16
16
|
export default async (argv, prompter, _options) => {
|
|
17
17
|
if (argv.help || argv.h) {
|
|
18
18
|
console.log(usage);
|
|
@@ -25,7 +25,7 @@ export default async (argv, prompter, _options) => {
|
|
|
25
25
|
type: 'autocomplete',
|
|
26
26
|
name: 'subcommand',
|
|
27
27
|
message: 'What do you want to do?',
|
|
28
|
-
options: ['list', 'get', 'create', 'update', 'delete'],
|
|
28
|
+
options: ['list', 'find-first', 'get', 'create', 'update', 'delete'],
|
|
29
29
|
},
|
|
30
30
|
]);
|
|
31
31
|
return handleTableSubcommand(answer.subcommand, newArgv, prompter);
|
|
@@ -36,6 +36,8 @@ async function handleTableSubcommand(subcommand, argv, prompter) {
|
|
|
36
36
|
switch (subcommand) {
|
|
37
37
|
case 'list':
|
|
38
38
|
return handleList(argv, prompter);
|
|
39
|
+
case 'find-first':
|
|
40
|
+
return handleFindFirst(argv, prompter);
|
|
39
41
|
case 'get':
|
|
40
42
|
return handleGet(argv, prompter);
|
|
41
43
|
case 'create':
|
|
@@ -49,19 +51,17 @@ async function handleTableSubcommand(subcommand, argv, prompter) {
|
|
|
49
51
|
process.exit(1);
|
|
50
52
|
}
|
|
51
53
|
}
|
|
52
|
-
async function handleList(
|
|
54
|
+
async function handleList(argv, _prompter) {
|
|
53
55
|
try {
|
|
56
|
+
const defaultSelect = {
|
|
57
|
+
id: true,
|
|
58
|
+
viewId: true,
|
|
59
|
+
tableId: true,
|
|
60
|
+
joinOrder: true,
|
|
61
|
+
};
|
|
62
|
+
const findManyArgs = parseFindManyArgs(argv, defaultSelect);
|
|
54
63
|
const client = getClient();
|
|
55
|
-
const result = await client.viewTable
|
|
56
|
-
.findMany({
|
|
57
|
-
select: {
|
|
58
|
-
id: true,
|
|
59
|
-
viewId: true,
|
|
60
|
-
tableId: true,
|
|
61
|
-
joinOrder: true,
|
|
62
|
-
},
|
|
63
|
-
})
|
|
64
|
-
.execute();
|
|
64
|
+
const result = await client.viewTable.findMany(findManyArgs).execute();
|
|
65
65
|
console.log(JSON.stringify(result, null, 2));
|
|
66
66
|
}
|
|
67
67
|
catch (error) {
|
|
@@ -72,6 +72,27 @@ async function handleList(_argv, _prompter) {
|
|
|
72
72
|
process.exit(1);
|
|
73
73
|
}
|
|
74
74
|
}
|
|
75
|
+
async function handleFindFirst(argv, _prompter) {
|
|
76
|
+
try {
|
|
77
|
+
const defaultSelect = {
|
|
78
|
+
id: true,
|
|
79
|
+
viewId: true,
|
|
80
|
+
tableId: true,
|
|
81
|
+
joinOrder: true,
|
|
82
|
+
};
|
|
83
|
+
const findFirstArgs = parseFindFirstArgs(argv, defaultSelect);
|
|
84
|
+
const client = getClient();
|
|
85
|
+
const result = await client.viewTable.findFirst(findFirstArgs).execute();
|
|
86
|
+
console.log(JSON.stringify(result, null, 2));
|
|
87
|
+
}
|
|
88
|
+
catch (error) {
|
|
89
|
+
console.error('Failed to find record.');
|
|
90
|
+
if (error instanceof Error) {
|
|
91
|
+
console.error(error.message);
|
|
92
|
+
}
|
|
93
|
+
process.exit(1);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
75
96
|
async function handleGet(argv, prompter) {
|
|
76
97
|
try {
|
|
77
98
|
const answers = await prompter.prompt(argv, [
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { extractFirst } from 'inquirerer';
|
|
7
7
|
import { getClient } from '../executor';
|
|
8
|
-
import { coerceAnswers, stripUndefined } from '../utils';
|
|
8
|
+
import { coerceAnswers, parseFindFirstArgs, parseFindManyArgs, stripUndefined } from '../utils';
|
|
9
9
|
const fieldSchema = {
|
|
10
10
|
id: 'uuid',
|
|
11
11
|
databaseId: 'uuid',
|
|
@@ -24,7 +24,7 @@ const fieldSchema = {
|
|
|
24
24
|
scope: 'int',
|
|
25
25
|
tags: 'string',
|
|
26
26
|
};
|
|
27
|
-
const usage = '\nview <command>\n\nCommands:\n list List
|
|
27
|
+
const usage = '\nview <command>\n\nCommands:\n list List view records\n find-first Find first matching view record\n get Get a view by ID\n create Create a new view\n update Update an existing view\n delete Delete a view\n\nList Options:\n --limit <n> Max number of records to return (forward pagination)\n --last <n> Number of records from the end (backward pagination)\n --after <cursor> Cursor for forward pagination\n --before <cursor> Cursor for backward pagination\n --offset <n> Number of records to skip\n --select <fields> Comma-separated list of fields to return\n --where.<field>.<op> Filter (dot-notation, e.g. --where.name.equalTo foo)\n --condition.<f>.<op> Condition filter (dot-notation)\n --orderBy <values> Comma-separated ordering values (e.g. NAME_ASC,CREATED_AT_DESC)\n\nFind-First Options:\n --select <fields> Comma-separated list of fields to return\n --where.<field>.<op> Filter (dot-notation, e.g. --where.status.equalTo active)\n --condition.<f>.<op> Condition filter (dot-notation)\n\n --help, -h Show this help message\n';
|
|
28
28
|
export default async (argv, prompter, _options) => {
|
|
29
29
|
if (argv.help || argv.h) {
|
|
30
30
|
console.log(usage);
|
|
@@ -37,7 +37,7 @@ export default async (argv, prompter, _options) => {
|
|
|
37
37
|
type: 'autocomplete',
|
|
38
38
|
name: 'subcommand',
|
|
39
39
|
message: 'What do you want to do?',
|
|
40
|
-
options: ['list', 'get', 'create', 'update', 'delete'],
|
|
40
|
+
options: ['list', 'find-first', 'get', 'create', 'update', 'delete'],
|
|
41
41
|
},
|
|
42
42
|
]);
|
|
43
43
|
return handleTableSubcommand(answer.subcommand, newArgv, prompter);
|
|
@@ -48,6 +48,8 @@ async function handleTableSubcommand(subcommand, argv, prompter) {
|
|
|
48
48
|
switch (subcommand) {
|
|
49
49
|
case 'list':
|
|
50
50
|
return handleList(argv, prompter);
|
|
51
|
+
case 'find-first':
|
|
52
|
+
return handleFindFirst(argv, prompter);
|
|
51
53
|
case 'get':
|
|
52
54
|
return handleGet(argv, prompter);
|
|
53
55
|
case 'create':
|
|
@@ -61,31 +63,29 @@ async function handleTableSubcommand(subcommand, argv, prompter) {
|
|
|
61
63
|
process.exit(1);
|
|
62
64
|
}
|
|
63
65
|
}
|
|
64
|
-
async function handleList(
|
|
66
|
+
async function handleList(argv, _prompter) {
|
|
65
67
|
try {
|
|
68
|
+
const defaultSelect = {
|
|
69
|
+
id: true,
|
|
70
|
+
databaseId: true,
|
|
71
|
+
schemaId: true,
|
|
72
|
+
name: true,
|
|
73
|
+
tableId: true,
|
|
74
|
+
viewType: true,
|
|
75
|
+
data: true,
|
|
76
|
+
filterType: true,
|
|
77
|
+
filterData: true,
|
|
78
|
+
securityInvoker: true,
|
|
79
|
+
isReadOnly: true,
|
|
80
|
+
smartTags: true,
|
|
81
|
+
category: true,
|
|
82
|
+
module: true,
|
|
83
|
+
scope: true,
|
|
84
|
+
tags: true,
|
|
85
|
+
};
|
|
86
|
+
const findManyArgs = parseFindManyArgs(argv, defaultSelect);
|
|
66
87
|
const client = getClient();
|
|
67
|
-
const result = await client.view
|
|
68
|
-
.findMany({
|
|
69
|
-
select: {
|
|
70
|
-
id: true,
|
|
71
|
-
databaseId: true,
|
|
72
|
-
schemaId: true,
|
|
73
|
-
name: true,
|
|
74
|
-
tableId: true,
|
|
75
|
-
viewType: true,
|
|
76
|
-
data: true,
|
|
77
|
-
filterType: true,
|
|
78
|
-
filterData: true,
|
|
79
|
-
securityInvoker: true,
|
|
80
|
-
isReadOnly: true,
|
|
81
|
-
smartTags: true,
|
|
82
|
-
category: true,
|
|
83
|
-
module: true,
|
|
84
|
-
scope: true,
|
|
85
|
-
tags: true,
|
|
86
|
-
},
|
|
87
|
-
})
|
|
88
|
-
.execute();
|
|
88
|
+
const result = await client.view.findMany(findManyArgs).execute();
|
|
89
89
|
console.log(JSON.stringify(result, null, 2));
|
|
90
90
|
}
|
|
91
91
|
catch (error) {
|
|
@@ -96,6 +96,39 @@ async function handleList(_argv, _prompter) {
|
|
|
96
96
|
process.exit(1);
|
|
97
97
|
}
|
|
98
98
|
}
|
|
99
|
+
async function handleFindFirst(argv, _prompter) {
|
|
100
|
+
try {
|
|
101
|
+
const defaultSelect = {
|
|
102
|
+
id: true,
|
|
103
|
+
databaseId: true,
|
|
104
|
+
schemaId: true,
|
|
105
|
+
name: true,
|
|
106
|
+
tableId: true,
|
|
107
|
+
viewType: true,
|
|
108
|
+
data: true,
|
|
109
|
+
filterType: true,
|
|
110
|
+
filterData: true,
|
|
111
|
+
securityInvoker: true,
|
|
112
|
+
isReadOnly: true,
|
|
113
|
+
smartTags: true,
|
|
114
|
+
category: true,
|
|
115
|
+
module: true,
|
|
116
|
+
scope: true,
|
|
117
|
+
tags: true,
|
|
118
|
+
};
|
|
119
|
+
const findFirstArgs = parseFindFirstArgs(argv, defaultSelect);
|
|
120
|
+
const client = getClient();
|
|
121
|
+
const result = await client.view.findFirst(findFirstArgs).execute();
|
|
122
|
+
console.log(JSON.stringify(result, null, 2));
|
|
123
|
+
}
|
|
124
|
+
catch (error) {
|
|
125
|
+
console.error('Failed to find record.');
|
|
126
|
+
if (error instanceof Error) {
|
|
127
|
+
console.error(error.message);
|
|
128
|
+
}
|
|
129
|
+
process.exit(1);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
99
132
|
async function handleGet(argv, prompter) {
|
|
100
133
|
try {
|
|
101
134
|
const answers = await prompter.prompt(argv, [
|