(cli *cli)
| 1183 | } |
| 1184 | |
| 1185 | func createInvitationOrganizationCmd(cli *cli) *cobra.Command { |
| 1186 | var inputs struct { |
| 1187 | OrgID string |
| 1188 | InviterName string |
| 1189 | InviteeEmail string |
| 1190 | ClientID string |
| 1191 | ConnectionID string |
| 1192 | TTLSeconds int |
| 1193 | SendInvitationEmail bool |
| 1194 | Roles []string |
| 1195 | AppMetadata string |
| 1196 | UserMetadata string |
| 1197 | } |
| 1198 | |
| 1199 | cmd := &cobra.Command{ |
| 1200 | Use: "create", |
| 1201 | Args: cobra.NoArgs, |
| 1202 | Short: "Create a new invitation to an organization", |
| 1203 | Long: "Create a new invitation to an organization with required and optional parameters.\n\n" + |
| 1204 | "To create interactively, use `auth0 orgs invs create` with no flags and answer the prompts.\n\n" + |
| 1205 | "To create non-interactively, supply the organization id and the other parameters through flags.", |
| 1206 | Example: ` auth0 orgs invs create |
| 1207 | auth0 orgs invs create --org-id <org-id> |
| 1208 | auth0 orgs invs create --org-id <org-id> --inviter-name "Inviter Name" --invitee-email "invitee@example.com" |
| 1209 | auth0 orgs invs create --org-id <org-id> --invitee-email "invitee@example.com" --client-id "client_id" |
| 1210 | auth0 orgs invs create --org-id <org-id> -n "Inviter Name" -e "invitee@example.com" --client-id "client_id" --connection-id "connection_id" -t 86400 |
| 1211 | auth0 orgs invs create --org-id <org-id> --json --send-email=false --inviter-name "Inviter Name"`, |
| 1212 | RunE: func(cmd *cobra.Command, args []string) error { |
| 1213 | if err := organizationIDFlag.Pick(cmd, &inputs.OrgID, cli.organizationPickerOptions); err != nil { |
| 1214 | return err |
| 1215 | } |
| 1216 | if err := clientID.Pick(cmd, &inputs.ClientID, cli.appPickerOptions()); err != nil { |
| 1217 | return err |
| 1218 | } |
| 1219 | if err := inviterName.Ask(cmd, &inputs.InviterName, nil); err != nil { |
| 1220 | return err |
| 1221 | } |
| 1222 | if err := inviteeEmail.Ask(cmd, &inputs.InviteeEmail, nil); err != nil { |
| 1223 | return err |
| 1224 | } |
| 1225 | |
| 1226 | invitation := &management.OrganizationInvitation{ |
| 1227 | Inviter: &management.OrganizationInvitationInviter{Name: &inputs.InviterName}, |
| 1228 | Invitee: &management.OrganizationInvitationInvitee{Email: &inputs.InviteeEmail}, |
| 1229 | ClientID: &inputs.ClientID, |
| 1230 | TTLSec: &inputs.TTLSeconds, |
| 1231 | SendInvitationEmail: &inputs.SendInvitationEmail, |
| 1232 | } |
| 1233 | if inputs.ConnectionID != "" { |
| 1234 | invitation.ConnectionID = &inputs.ConnectionID |
| 1235 | } |
| 1236 | if inputs.AppMetadata != "" { |
| 1237 | var metadata map[string]interface{} |
| 1238 | if err := json.Unmarshal([]byte(inputs.AppMetadata), &metadata); err != nil { |
| 1239 | return fmt.Errorf("invalid JSON for app metadata: %w", err) |
| 1240 | } |
| 1241 | invitation.AppMetadata = metadata |
| 1242 | } |
no test coverage detected