MG-2253 - Create Users CLI tests (#2319)

Signed-off-by: JeffMboya <jangina.mboya@gmail.com>
This commit is contained in:
JMboya
2024-07-09 14:37:39 +03:00
committed by GitHub
parent b49a2cd012
commit 04c3594627
18 changed files with 1818 additions and 354 deletions
+10
View File
@@ -92,6 +92,11 @@ jobs:
- "auth/**"
- "pkg/sdk/**"
cli:
- "cli/**"
- "cmd/cli/**"
- "pkg/sdk/**"
coap:
- "coap/**"
- "cmd/coap/**"
@@ -296,6 +301,11 @@ jobs:
run: |
go test --race -v -count=1 -coverprofile=coverage/certs.out ./certs/...
- name: Run cli tests
if: steps.changes.outputs.cli == 'true' || steps.changes.outputs.workflow == 'true'
run: |
go test --race -v -count=1 -coverprofile=coverage/cli.out ./cli/...
- name: Run CoAP tests
if: steps.changes.outputs.coap == 'true' || steps.changes.outputs.workflow == 'true'
run: |
+31 -31
View File
@@ -17,23 +17,23 @@ var cmdBootstrap = []cobra.Command{
Long: `Create new Thing Bootstrap Config to the user identified by the provided key`,
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 2 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
var cfg mgxsdk.BootstrapConfig
if err := json.Unmarshal([]byte(args[0]), &cfg); err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
id, err := sdk.AddBootstrap(cfg, args[1])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logCreated(id)
logCreatedCmd(*cmd, id)
},
},
{
@@ -44,7 +44,7 @@ var cmdBootstrap = []cobra.Command{
<thing_id> - view config of <thing_id>`,
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 2 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
pageMetadata := mgxsdk.PageMetadata{
@@ -56,20 +56,20 @@ var cmdBootstrap = []cobra.Command{
if args[0] == "all" {
l, err := sdk.Bootstraps(pageMetadata, args[1])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logJSON(l)
logJSONCmd(*cmd, l)
return
}
c, err := sdk.ViewBootstrap(args[0], args[1])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logJSON(c)
logJSONCmd(*cmd, c)
},
},
{
@@ -82,49 +82,49 @@ var cmdBootstrap = []cobra.Command{
certs <id> <client_cert> <client_key> <ca> - Update bootstrap config certificates.`,
Run: func(cmd *cobra.Command, args []string) {
if len(args) < 3 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
if args[0] == "config" {
var cfg mgxsdk.BootstrapConfig
if err := json.Unmarshal([]byte(args[0]), &cfg); err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
if err := sdk.UpdateBootstrap(cfg, args[1]); err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logOK()
logOKCmd(*cmd)
return
}
if args[0] == "connection" {
var ids []string
if err := json.Unmarshal([]byte(args[1]), &ids); err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
if err := sdk.UpdateBootstrapConnection(args[0], ids, args[2]); err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logOK()
logOKCmd(*cmd)
return
}
if args[0] == "certs" {
cfg, err := sdk.UpdateBootstrapCerts(args[0], args[1], args[2], args[3], args[4])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logJSON(cfg)
logJSONCmd(*cmd, cfg)
return
}
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
},
},
{
@@ -133,16 +133,16 @@ var cmdBootstrap = []cobra.Command{
Long: `Removes Config with specified key that belongs to the user identified by the given key`,
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 2 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
if err := sdk.RemoveBootstrap(args[0], args[1]); err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logOK()
logOKCmd(*cmd)
},
},
{
@@ -152,26 +152,26 @@ var cmdBootstrap = []cobra.Command{
secure - Retrieves a configuration with given external ID and encrypted external key.`,
Run: func(cmd *cobra.Command, args []string) {
if len(args) < 2 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
if args[0] == "secure" {
c, err := sdk.BootstrapSecure(args[1], args[2], args[3])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logJSON(c)
logJSONCmd(*cmd, c)
return
}
c, err := sdk.Bootstrap(args[0], args[1])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logJSON(c)
logJSONCmd(*cmd, c)
},
},
{
@@ -180,22 +180,22 @@ var cmdBootstrap = []cobra.Command{
Long: `Whitelist updates thing state config with given id from the authenticated user`,
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 2 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
var cfg mgxsdk.BootstrapConfig
if err := json.Unmarshal([]byte(args[0]), &cfg); err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
if err := sdk.Whitelist(cfg.ThingID, cfg.State, args[1]); err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logOK()
logOKCmd(*cmd)
},
},
}
+11 -11
View File
@@ -14,24 +14,24 @@ var cmdCerts = []cobra.Command{
Long: `Gets a certificate for a given cert ID.`,
Run: func(cmd *cobra.Command, args []string) {
if len(args) < 2 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
if args[0] == "thing" {
cert, err := sdk.ViewCertByThing(args[1], args[2])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logJSON(cert)
logJSONCmd(*cmd, cert)
return
}
cert, err := sdk.ViewCert(args[0], args[1])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logJSON(cert)
logJSONCmd(*cmd, cert)
},
},
{
@@ -40,15 +40,15 @@ var cmdCerts = []cobra.Command{
Long: `Revokes a certificate for a given thing ID.`,
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 2 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
rtime, err := sdk.RevokeCert(args[0], args[1])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logRevokedTime(rtime)
logRevokedTimeCmd(*cmd, rtime)
},
},
}
@@ -63,7 +63,7 @@ func NewCertsCmd() *cobra.Command {
Long: `Issues new certificate for a thing`,
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 2 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
@@ -71,10 +71,10 @@ func NewCertsCmd() *cobra.Command {
c, err := sdk.IssueCert(thingID, ttl, args[1])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logJSON(c)
logJSONCmd(*cmd, c)
},
}
+48 -48
View File
@@ -19,23 +19,23 @@ var cmdChannels = []cobra.Command{
Long: `Creates new channel and generates it's UUID`,
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 2 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
var channel mgxsdk.Channel
if err := json.Unmarshal([]byte(args[0]), &channel); err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
channel, err := sdk.CreateChannel(channel, args[1])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logJSON(channel)
logJSONCmd(*cmd, channel)
},
},
{
@@ -47,12 +47,12 @@ var cmdChannels = []cobra.Command{
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 2 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
metadata, err := convertMetadata(Metadata)
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
pageMetadata := mgxsdk.PageMetadata{
@@ -65,20 +65,20 @@ var cmdChannels = []cobra.Command{
if args[0] == all {
l, err := sdk.Channels(pageMetadata, args[1])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logJSON(l)
logJSONCmd(*cmd, l)
return
}
c, err := sdk.Channel(args[0], args[1])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logJSON(c)
logJSONCmd(*cmd, c)
},
},
{
@@ -89,14 +89,14 @@ var cmdChannels = []cobra.Command{
"\tmagistrala-cli channels delete <channel_id> $USERTOKEN - delete the given channel ID\n",
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 2 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
if err := sdk.DeleteChannel(args[0], args[1]); err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logOK()
logOKCmd(*cmd)
},
},
{
@@ -105,23 +105,23 @@ var cmdChannels = []cobra.Command{
Long: `Updates channel record`,
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 3 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
var channel mgxsdk.Channel
if err := json.Unmarshal([]byte(args[1]), &channel); err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
channel.ID = args[0]
channel, err := sdk.UpdateChannel(channel, args[2])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logJSON(channel)
logJSONCmd(*cmd, channel)
},
},
{
@@ -130,7 +130,7 @@ var cmdChannels = []cobra.Command{
Long: `List of Things connected to a Channel`,
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 2 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
pm := mgxsdk.PageMetadata{
@@ -139,11 +139,11 @@ var cmdChannels = []cobra.Command{
}
cl, err := sdk.ThingsByChannel(args[0], pm, args[1])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logJSON(cl)
logJSONCmd(*cmd, cl)
},
},
{
@@ -152,17 +152,17 @@ var cmdChannels = []cobra.Command{
Long: `Change channel status to enabled`,
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 2 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
channel, err := sdk.EnableChannel(args[0], args[1])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logJSON(channel)
logJSONCmd(*cmd, channel)
},
},
{
@@ -171,17 +171,17 @@ var cmdChannels = []cobra.Command{
Long: `Change channel status to disabled`,
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 2 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
channel, err := sdk.DisableChannel(args[0], args[1])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logJSON(channel)
logJSONCmd(*cmd, channel)
},
},
{
@@ -192,7 +192,7 @@ var cmdChannels = []cobra.Command{
"\tmagistrala-cli channels users <channel_id> $USERTOKEN\n",
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 2 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
pm := mgxsdk.PageMetadata{
@@ -201,11 +201,11 @@ var cmdChannels = []cobra.Command{
}
ul, err := sdk.ListChannelUsers(args[0], pm, args[1])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logJSON(ul)
logJSONCmd(*cmd, ul)
},
},
{
@@ -216,7 +216,7 @@ var cmdChannels = []cobra.Command{
"\tmagistrala-cli channels groups <channel_id> $USERTOKEN\n",
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 2 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
pm := mgxsdk.PageMetadata{
@@ -225,11 +225,11 @@ var cmdChannels = []cobra.Command{
}
ul, err := sdk.ListChannelUserGroups(args[0], pm, args[1])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logJSON(ul)
logJSONCmd(*cmd, ul)
},
},
}
@@ -243,19 +243,19 @@ var channelAssignCmds = []cobra.Command{
"\tmagistrala-cli channels assign users <relation> '[\"<user_id_1>\", \"<user_id_2>\"]' <channel_id> $USERTOKEN\n",
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 4 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
var userIDs []string
if err := json.Unmarshal([]byte(args[1]), &userIDs); err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
if err := sdk.AddUserToChannel(args[2], mgxsdk.UsersRelationRequest{Relation: args[0], UserIDs: userIDs}, args[3]); err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logOK()
logOKCmd(*cmd)
},
},
{
@@ -267,19 +267,19 @@ var channelAssignCmds = []cobra.Command{
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 3 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
var groupIDs []string
if err := json.Unmarshal([]byte(args[0]), &groupIDs); err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
if err := sdk.AddUserGroupToChannel(args[1], mgxsdk.UserGroupsRequest{UserGroupIDs: groupIDs}, args[2]); err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logOK()
logOKCmd(*cmd)
},
},
}
@@ -293,19 +293,19 @@ var channelUnassignCmds = []cobra.Command{
"\tmagistrala-cli channels unassign groups '[\"<group_id_1>\", \"<group_id_2>\"]' <channel_id> $USERTOKEN\n",
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 3 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
var groupIDs []string
if err := json.Unmarshal([]byte(args[0]), &groupIDs); err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
if err := sdk.RemoveUserGroupFromChannel(args[1], mgxsdk.UserGroupsRequest{UserGroupIDs: groupIDs}, args[2]); err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logOK()
logOKCmd(*cmd)
},
},
@@ -317,19 +317,19 @@ var channelUnassignCmds = []cobra.Command{
"\tmagistrala-cli channels unassign users <relation> '[\"<user_id_1>\", \"<user_id_2>\"]' <channel_id> $USERTOKEN\n",
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 4 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
var userIDs []string
if err := json.Unmarshal([]byte(args[1]), &userIDs); err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
if err := sdk.RemoveUserFromChannel(args[2], mgxsdk.UsersRelationRequest{Relation: args[0], UserIDs: userIDs}, args[3]); err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logOK()
logOKCmd(*cmd)
},
},
}
+3 -3
View File
@@ -224,16 +224,16 @@ func NewConfigCmd() *cobra.Command {
Long: "Local param storage to prevent repetitive passing of keys",
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 2 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
if err := setConfigValue(args[0], args[1]); err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logOK()
logOKCmd(*cmd)
},
}
}
+11 -11
View File
@@ -15,17 +15,17 @@ var cmdSubscription = []cobra.Command{
Long: `Create new subscription`,
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 3 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
id, err := sdk.CreateSubscription(args[0], args[1], args[2])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logCreated(id)
logCreatedCmd(*cmd, id)
},
},
{
@@ -36,7 +36,7 @@ var cmdSubscription = []cobra.Command{
<sub_id> - view subscription of <sub_id>`,
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 2 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
pageMetadata := mgxsdk.PageMetadata{
@@ -48,20 +48,20 @@ var cmdSubscription = []cobra.Command{
if args[0] == "all" {
sub, err := sdk.ListSubscriptions(pageMetadata, args[1])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logJSON(sub)
logJSONCmd(*cmd, sub)
return
}
c, err := sdk.ViewSubscription(args[0], args[1])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logJSON(c)
logJSONCmd(*cmd, c)
},
},
{
@@ -70,16 +70,16 @@ var cmdSubscription = []cobra.Command{
Long: `Removes removes a subscription with the provided id`,
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 2 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
if err := sdk.DeleteSubscription(args[0], args[1]); err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logOK()
logOKCmd(*cmd)
},
},
}
+30 -30
View File
@@ -19,7 +19,7 @@ var cmdDomains = []cobra.Command{
"\tmagistrala-cli domains create domain_1 domain_1_alias $TOKEN\n",
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 3 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
@@ -29,10 +29,10 @@ var cmdDomains = []cobra.Command{
}
user, err := sdk.CreateDomain(user, args[2])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logJSON(user)
logJSONCmd(*cmd, user)
},
},
{
@@ -41,12 +41,12 @@ var cmdDomains = []cobra.Command{
Long: "Get all domains. Users can be filtered by name or metadata or status",
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 2 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
metadata, err := convertMetadata(Metadata)
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
pageMetadata := mgxsdk.PageMetadata{
@@ -59,19 +59,19 @@ var cmdDomains = []cobra.Command{
if args[0] == all {
l, err := sdk.Domains(pageMetadata, args[1])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logJSON(l)
logJSONCmd(*cmd, l)
return
}
d, err := sdk.Domain(args[0], args[1])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logJSON(d)
logJSONCmd(*cmd, d)
},
},
@@ -81,12 +81,12 @@ var cmdDomains = []cobra.Command{
Long: "List Domain users",
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 2 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
metadata, err := convertMetadata(Metadata)
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
pageMetadata := mgxsdk.PageMetadata{
@@ -98,10 +98,10 @@ var cmdDomains = []cobra.Command{
l, err := sdk.ListDomainUsers(args[0], pageMetadata, args[1])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logJSON(l)
logJSONCmd(*cmd, l)
},
},
@@ -113,23 +113,23 @@ var cmdDomains = []cobra.Command{
"\tmagistrala-cli domains update <domain_id> '{\"name\":\"new name\", \"alias\":\"new_alias\", \"metadata\":{\"key\": \"value\"}}' $TOKEN \n",
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 4 && len(args) != 3 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
var d mgxsdk.Domain
if err := json.Unmarshal([]byte(args[1]), &d); err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
d.ID = args[0]
d, err := sdk.UpdateDomain(d, args[2])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logJSON(d)
logJSONCmd(*cmd, d)
},
},
@@ -141,15 +141,15 @@ var cmdDomains = []cobra.Command{
"\tmagistrala-cli domains enable <domain_id> <token>\n",
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 2 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
if err := sdk.EnableDomain(args[0], args[1]); err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logOK()
logOKCmd(*cmd)
},
},
{
@@ -160,15 +160,15 @@ var cmdDomains = []cobra.Command{
"\tmagistrala-cli domains disable <domain_id> <token>\n",
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 2 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
if err := sdk.DisableDomain(args[0], args[1]); err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logOK()
logOKCmd(*cmd)
},
},
}
@@ -182,19 +182,19 @@ var domainAssignCmds = []cobra.Command{
"\tmagistrala-cli domains assign users <relation> '[\"<user_id_1>\", \"<user_id_2>\"]' <domain_id> $TOKEN\n",
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 4 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
var userIDs []string
if err := json.Unmarshal([]byte(args[1]), &userIDs); err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
if err := sdk.AddUserToDomain(args[2], mgxsdk.UsersRelationRequest{Relation: args[0], UserIDs: userIDs}, args[3]); err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logOK()
logOKCmd(*cmd)
},
},
}
@@ -208,15 +208,15 @@ var domainUnassignCmds = []cobra.Command{
"\tmagistrala-cli domains unassign users <user_id> <domain_id> $TOKEN\n",
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 3 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
if err := sdk.RemoveUserFromDomain(args[1], args[0], args[2]); err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logOK()
logOKCmd(*cmd)
},
},
}
+44 -44
View File
@@ -20,21 +20,21 @@ var cmdGroups = []cobra.Command{
"\tmagistrala-cli groups create '{\"name\":\"new group\", \"description\":\"new group description\", \"metadata\":{\"key\": \"value\"}}' $USERTOKEN\n",
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 2 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
var group mgxsdk.Group
if err := json.Unmarshal([]byte(args[0]), &group); err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
group.Status = mgclients.EnabledStatus.String()
group, err := sdk.CreateGroup(group, args[1])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logJSON(group)
logJSONCmd(*cmd, group)
},
},
{
@@ -45,23 +45,23 @@ var cmdGroups = []cobra.Command{
"\tmagistrala-cli groups update '{\"id\":\"<group_id>\", \"name\":\"new group\", \"description\":\"new group description\", \"metadata\":{\"key\": \"value\"}}' $USERTOKEN\n",
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 2 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
var group mgxsdk.Group
if err := json.Unmarshal([]byte(args[0]), &group); err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
group, err := sdk.UpdateGroup(group, args[1])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logJSON(group)
logJSONCmd(*cmd, group)
},
},
{
@@ -75,12 +75,12 @@ var cmdGroups = []cobra.Command{
"\tmagistrala-cli groups get <group_id> $USERTOKEN - shows group with provided group ID\n",
Run: func(cmd *cobra.Command, args []string) {
if len(args) < 2 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
if args[0] == all {
if len(args) > 2 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
pm := mgxsdk.PageMetadata{
@@ -89,15 +89,15 @@ var cmdGroups = []cobra.Command{
}
l, err := sdk.Groups(pm, args[1])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logJSON(l)
logJSONCmd(*cmd, l)
return
}
if args[0] == "children" {
if len(args) > 3 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
pm := mgxsdk.PageMetadata{
@@ -106,15 +106,15 @@ var cmdGroups = []cobra.Command{
}
l, err := sdk.Children(args[1], pm, args[2])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logJSON(l)
logJSONCmd(*cmd, l)
return
}
if args[0] == "parents" {
if len(args) > 3 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
pm := mgxsdk.PageMetadata{
@@ -123,22 +123,22 @@ var cmdGroups = []cobra.Command{
}
l, err := sdk.Parents(args[1], pm, args[2])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logJSON(l)
logJSONCmd(*cmd, l)
return
}
if len(args) > 2 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
t, err := sdk.Group(args[0], args[1])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logJSON(t)
logJSONCmd(*cmd, t)
},
},
{
@@ -149,14 +149,14 @@ var cmdGroups = []cobra.Command{
"\tmagistrala-cli groups delete <group_id> $USERTOKEN - delete the given group ID\n",
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 2 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
if err := sdk.DeleteGroup(args[0], args[1]); err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logOK()
logOKCmd(*cmd)
},
},
{
@@ -167,7 +167,7 @@ var cmdGroups = []cobra.Command{
"\tmagistrala-cli groups users <group_id> $USERTOKEN",
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 2 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
pm := mgxsdk.PageMetadata{
@@ -177,10 +177,10 @@ var cmdGroups = []cobra.Command{
}
users, err := sdk.ListGroupUsers(args[0], pm, args[1])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logJSON(users)
logJSONCmd(*cmd, users)
},
},
{
@@ -191,7 +191,7 @@ var cmdGroups = []cobra.Command{
"\tmagistrala-cli groups channels <group_id> $USERTOKEN",
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 2 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
pm := mgxsdk.PageMetadata{
@@ -201,10 +201,10 @@ var cmdGroups = []cobra.Command{
}
channels, err := sdk.ListGroupChannels(args[0], pm, args[1])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logJSON(channels)
logJSONCmd(*cmd, channels)
},
},
{
@@ -215,17 +215,17 @@ var cmdGroups = []cobra.Command{
"\tmagistrala-cli groups enable <group_id> $USERTOKEN\n",
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 2 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
group, err := sdk.EnableGroup(args[0], args[1])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logJSON(group)
logJSONCmd(*cmd, group)
},
},
{
@@ -236,17 +236,17 @@ var cmdGroups = []cobra.Command{
"\tmagistrala-cli groups disable <group_id> $USERTOKEN\n",
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 2 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
group, err := sdk.DisableGroup(args[0], args[1])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logJSON(group)
logJSONCmd(*cmd, group)
},
},
}
@@ -260,19 +260,19 @@ var groupAssignCmds = []cobra.Command{
"\tmagistrala-cli groups assign users <relation> '[\"<user_id_1>\", \"<user_id_2>\"]' <group_id> $USERTOKEN\n",
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 4 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
var userIDs []string
if err := json.Unmarshal([]byte(args[1]), &userIDs); err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
if err := sdk.AddUserToGroup(args[2], mgxsdk.UsersRelationRequest{Relation: args[0], UserIDs: userIDs}, args[3]); err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logOK()
logOKCmd(*cmd)
},
},
}
@@ -286,19 +286,19 @@ var groupUnassignCmds = []cobra.Command{
"\tmagistrala-cli groups unassign users <relation> '[\"<user_id_1>\", \"<user_id_2>\"]' <group_id> $USERTOKEN\n",
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 4 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
var userIDs []string
if err := json.Unmarshal([]byte(args[1]), &userIDs); err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
if err := sdk.RemoveUserFromGroup(args[2], mgxsdk.UsersRelationRequest{Relation: args[0], UserIDs: userIDs}, args[3]); err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logOK()
logOKCmd(*cmd)
},
},
}
+3 -3
View File
@@ -15,16 +15,16 @@ func NewHealthCmd() *cobra.Command {
"\tmagistrala-cli health <service>",
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 1 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
v, err := sdk.Health(args[0])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logJSON(v)
logJSONCmd(*cmd, v)
},
}
}
+14 -14
View File
@@ -17,7 +17,7 @@ var cmdInvitations = []cobra.Command{
"\tmagistrala-cli invitations send 39f97daf-d6b6-40f4-b229-2697be8006ef 4ef09eff-d500-4d56-b04f-d23a512d6f2a administrator $USER_AUTH_TOKEN\n",
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 4 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
inv := mgxsdk.Invitation{
@@ -26,11 +26,11 @@ var cmdInvitations = []cobra.Command{
Relation: args[2],
}
if err := sdk.SendInvitation(inv, args[3]); err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logOK()
logOKCmd(*cmd)
},
},
{
@@ -43,7 +43,7 @@ var cmdInvitations = []cobra.Command{
"\tmagistrala-cli invitations get <user_id> <domain_id> <user_auth_token> - shows invitation by user id and domain id\n",
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 2 && len(args) != 3 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
@@ -55,19 +55,19 @@ var cmdInvitations = []cobra.Command{
if args[0] == all {
l, err := sdk.Invitations(pageMetadata, args[1])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logJSON(l)
logJSONCmd(*cmd, l)
return
}
u, err := sdk.Invitation(args[0], args[1], args[2])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logJSON(u)
logJSONCmd(*cmd, u)
},
},
{
@@ -78,16 +78,16 @@ var cmdInvitations = []cobra.Command{
"\tmagistrala-cli invitations accept 39f97daf-d6b6-40f4-b229-2697be8006ef $USERTOKEN\n",
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 2 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
if err := sdk.AcceptInvitation(args[0], args[1]); err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logOK()
logOKCmd(*cmd)
},
},
{
@@ -98,16 +98,16 @@ var cmdInvitations = []cobra.Command{
"\tmagistrala-cli invitations delete 39f97daf-d6b6-40f4-b229-2697be8006ef 4ef09eff-d500-4d56-b04f-d23a512d6f2a $USERTOKEN\n",
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 3 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
if err := sdk.DeleteInvitation(args[0], args[1], args[2]); err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logOK()
logOKCmd(*cmd)
},
},
}
+3 -3
View File
@@ -17,7 +17,7 @@ var cmdJournal = cobra.Command{
"\tmagistrala-cli journal get <entity_type> <entity_id> <user_auth_token> --offset <offset> --limit <limit> - lists journal logs with provided offset and limit\n",
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 3 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
@@ -28,11 +28,11 @@ var cmdJournal = cobra.Command{
journal, err := sdk.Journal(args[0], args[1], pageMetadata, args[2])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logJSON(journal)
logJSONCmd(*cmd, journal)
},
}
+6 -6
View File
@@ -15,16 +15,16 @@ var cmdMessages = []cobra.Command{
Long: `Sends message on the channel`,
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 3 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
if err := sdk.SendMessage(args[0], args[1], args[2]); err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logOK()
logOKCmd(*cmd)
},
},
{
@@ -35,7 +35,7 @@ var cmdMessages = []cobra.Command{
"\tmagistrala-cli messages read <channel_id.subtopic> <user_token> --offset <offset> --limit <limit> - lists all messages with provided offset and limit\n",
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 2 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
pageMetadata := mgxsdk.MessagePageMetadata{
@@ -47,11 +47,11 @@ var cmdMessages = []cobra.Command{
m, err := sdk.ReadMessages(pageMetadata, args[0], args[1])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logJSON(m)
logJSONCmd(*cmd, m)
},
},
}
+27 -27
View File
@@ -36,28 +36,28 @@ var cmdProvision = []cobra.Command{
Long: `Bulk create things`,
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 2 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
if _, err := os.Stat(args[0]); os.IsNotExist(err) {
logError(err)
logErrorCmd(*cmd, err)
return
}
things, err := thingsFromFile(args[0])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
things, err = sdk.CreateThings(things, args[1])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logJSON(things)
logJSONCmd(*cmd, things)
},
},
{
@@ -66,13 +66,13 @@ var cmdProvision = []cobra.Command{
Long: `Bulk create channels`,
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 2 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
channels, err := channelsFromFile(args[0])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
@@ -80,14 +80,14 @@ var cmdProvision = []cobra.Command{
for _, c := range channels {
c, err = sdk.CreateChannel(c, args[1])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
chs = append(chs, c)
}
channels = chs
logJSON(channels)
logJSONCmd(*cmd, channels)
},
},
{
@@ -96,23 +96,23 @@ var cmdProvision = []cobra.Command{
Long: `Bulk connect things to channels`,
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 2 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
connIDs, err := connectionsFromFile(args[0])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
for _, conn := range connIDs {
if err := sdk.Connect(conn, args[1]); err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
}
logOK()
logOKCmd(*cmd)
},
},
{
@@ -128,7 +128,7 @@ var cmdProvision = []cobra.Command{
channels := []mgxsdk.Channel{}
if len(args) != 0 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
@@ -144,14 +144,14 @@ var cmdProvision = []cobra.Command{
}
user, err := sdk.CreateUser(user, "")
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
user.Credentials.Secret = "12345678"
ut, err := sdk.CreateToken(mgxsdk.Login{Identity: user.Credentials.Identity, Secret: user.Credentials.Secret})
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
@@ -162,14 +162,14 @@ var cmdProvision = []cobra.Command{
}
domain, err = sdk.CreateDomain(domain, ut.AccessToken)
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
// domain login
ut, err = sdk.CreateToken(mgxsdk.Login{Identity: user.Credentials.Identity, Secret: user.Credentials.Secret, DomainID: domain.ID})
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
@@ -184,7 +184,7 @@ var cmdProvision = []cobra.Command{
}
things, err = sdk.CreateThings(things, ut.AccessToken)
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
@@ -196,7 +196,7 @@ var cmdProvision = []cobra.Command{
}
c, err = sdk.CreateChannel(c, ut.AccessToken)
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
@@ -209,7 +209,7 @@ var cmdProvision = []cobra.Command{
ThingID: things[0].ID,
}
if err := sdk.Connect(conIDs, ut.AccessToken); err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
@@ -218,7 +218,7 @@ var cmdProvision = []cobra.Command{
ThingID: things[0].ID,
}
if err := sdk.Connect(conIDs, ut.AccessToken); err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
@@ -227,25 +227,25 @@ var cmdProvision = []cobra.Command{
ThingID: things[1].ID,
}
if err := sdk.Connect(conIDs, ut.AccessToken); err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
// send message to test connectivity
if err := sdk.SendMessage(channels[0].ID, fmt.Sprintf(msgFormat, time.Now().Unix(), rand.Int()), things[0].Credentials.Secret); err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
if err := sdk.SendMessage(channels[0].ID, fmt.Sprintf(msgFormat, time.Now().Unix(), rand.Int()), things[1].Credentials.Secret); err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
if err := sdk.SendMessage(channels[1].ID, fmt.Sprintf(msgFormat, time.Now().Unix(), rand.Int()), things[0].Credentials.Secret); err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logJSON(user, ut, things, channels)
logJSONCmd(*cmd, user, ut, things, channels)
},
},
}
+118
View File
@@ -0,0 +1,118 @@
// Copyright (c) Abstract Machines
// SPDX-License-Identifier: Apache-2.0
package cli_test
import (
"bytes"
"testing"
"github.com/absmach/magistrala/cli"
"github.com/spf13/cobra"
"github.com/stretchr/testify/assert"
)
type outputLog uint8
const (
usageLog outputLog = iota
errLog
entityLog
okLog
)
func executeCommand(t *testing.T, root *cobra.Command, args ...string) string {
buffer := new(bytes.Buffer)
root.SetOut(buffer)
root.SetErr(buffer)
root.SetArgs(args)
err := root.Execute()
assert.NoError(t, err, "Error executing command")
return buffer.String()
}
func setFlags(rootCmd *cobra.Command) *cobra.Command {
// Root Flags
rootCmd.PersistentFlags().BoolVarP(
&cli.RawOutput,
"raw",
"r",
cli.RawOutput,
"Enables raw output mode for easier parsing of output",
)
// Client and Channels Flags
rootCmd.PersistentFlags().Uint64VarP(
&cli.Limit,
"limit",
"l",
10,
"Limit query parameter",
)
rootCmd.PersistentFlags().Uint64VarP(
&cli.Offset,
"offset",
"o",
0,
"Offset query parameter",
)
rootCmd.PersistentFlags().StringVarP(
&cli.Name,
"name",
"n",
"",
"Name query parameter",
)
rootCmd.PersistentFlags().StringVarP(
&cli.Identity,
"identity",
"I",
"",
"User identity query parameter",
)
rootCmd.PersistentFlags().StringVarP(
&cli.Metadata,
"metadata",
"m",
"",
"Metadata query parameter",
)
rootCmd.PersistentFlags().StringVarP(
&cli.Status,
"status",
"S",
"",
"User status query parameter",
)
rootCmd.PersistentFlags().StringVarP(
&cli.State,
"state",
"z",
"",
"Bootstrap state query parameter",
)
rootCmd.PersistentFlags().StringVarP(
&cli.Topic,
"topic",
"T",
"",
"Subscription topic query parameter",
)
rootCmd.PersistentFlags().StringVarP(
&cli.Contact,
"contact",
"C",
"",
"Subscription contact query parameter",
)
return rootCmd
}
+46 -46
View File
@@ -20,23 +20,23 @@ var cmdThings = []cobra.Command{
"\tmagistrala-cli things create '{\"name\":\"new thing\", \"metadata\":{\"key\": \"value\"}}' $USERTOKEN\n",
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 2 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
var thing mgxsdk.Thing
if err := json.Unmarshal([]byte(args[0]), &thing); err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
thing.Status = mgclients.EnabledStatus.String()
thing, err := sdk.CreateThing(thing, args[1])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logJSON(thing)
logJSONCmd(*cmd, thing)
},
},
{
@@ -49,12 +49,12 @@ var cmdThings = []cobra.Command{
"\tmagistrala-cli things get <thing_id> $USERTOKEN - shows thing with provided <thing_id>\n",
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 2 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
metadata, err := convertMetadata(Metadata)
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
pageMetadata := mgxsdk.PageMetadata{
@@ -66,19 +66,19 @@ var cmdThings = []cobra.Command{
if args[0] == all {
l, err := sdk.Things(pageMetadata, args[1])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logJSON(l)
logJSONCmd(*cmd, l)
return
}
t, err := sdk.Thing(args[0], args[1])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logJSON(t)
logJSONCmd(*cmd, t)
},
},
{
@@ -89,14 +89,14 @@ var cmdThings = []cobra.Command{
"\tmagistrala-cli things delete <thing_id> $USERTOKEN - delete thing with <thing_id>\n",
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 2 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
if err := sdk.DeleteThing(args[0], args[1]); err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logOK()
logOKCmd(*cmd)
},
},
{
@@ -109,50 +109,50 @@ var cmdThings = []cobra.Command{
"\tmagistrala-cli things update secret <thing_id> <newsecret> $USERTOKEN\n",
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 4 && len(args) != 3 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
var thing mgxsdk.Thing
if args[0] == "tags" {
if err := json.Unmarshal([]byte(args[2]), &thing.Tags); err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
thing.ID = args[1]
thing, err := sdk.UpdateThingTags(thing, args[3])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logJSON(thing)
logJSONCmd(*cmd, thing)
return
}
if args[0] == "secret" {
thing, err := sdk.UpdateThingSecret(args[1], args[2], args[3])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logJSON(thing)
logJSONCmd(*cmd, thing)
return
}
if err := json.Unmarshal([]byte(args[1]), &thing); err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
thing.ID = args[0]
thing, err := sdk.UpdateThing(thing, args[2])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logJSON(thing)
logJSONCmd(*cmd, thing)
},
},
{
@@ -163,17 +163,17 @@ var cmdThings = []cobra.Command{
"\tmagistrala-cli things enable <thing_id> $USERTOKEN\n",
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 2 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
thing, err := sdk.EnableThing(args[0], args[1])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logJSON(thing)
logJSONCmd(*cmd, thing)
},
},
{
@@ -184,17 +184,17 @@ var cmdThings = []cobra.Command{
"\tmagistrala-cli things disable <thing_id> $USERTOKEN\n",
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 2 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
thing, err := sdk.DisableThing(args[0], args[1])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logJSON(thing)
logJSONCmd(*cmd, thing)
},
},
{
@@ -205,7 +205,7 @@ var cmdThings = []cobra.Command{
"\tmagistrala-cli things share <thing_id> <user_id> <relation> $USERTOKEN\n",
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 4 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
req := mgxsdk.UsersRelationRequest{
@@ -214,11 +214,11 @@ var cmdThings = []cobra.Command{
}
err := sdk.ShareThing(args[0], req, args[3])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logOK()
logOKCmd(*cmd)
},
},
{
@@ -229,7 +229,7 @@ var cmdThings = []cobra.Command{
"\tmagistrala-cli things share <thing_id> <user_id> <relation> $USERTOKEN\n",
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 4 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
req := mgxsdk.UsersRelationRequest{
@@ -238,11 +238,11 @@ var cmdThings = []cobra.Command{
}
err := sdk.UnshareThing(args[0], req, args[3])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logOK()
logOKCmd(*cmd)
},
},
{
@@ -253,7 +253,7 @@ var cmdThings = []cobra.Command{
"\tmagistrala-cli things connect <thing_id> <channel_id> $USERTOKEN\n",
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 3 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
@@ -262,11 +262,11 @@ var cmdThings = []cobra.Command{
ThingID: args[0],
}
if err := sdk.Connect(connIDs, args[2]); err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logOK()
logOKCmd(*cmd)
},
},
{
@@ -277,7 +277,7 @@ var cmdThings = []cobra.Command{
"\tmagistrala-cli things disconnect <thing_id> <channel_id> $USERTOKEN\n",
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 3 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
@@ -286,11 +286,11 @@ var cmdThings = []cobra.Command{
ChannelID: args[1],
}
if err := sdk.Disconnect(connIDs, args[2]); err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logOK()
logOKCmd(*cmd)
},
},
{
@@ -301,7 +301,7 @@ var cmdThings = []cobra.Command{
"\tmagistrala-cli connections <thing_id> $USERTOKEN\n",
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 2 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
pm := mgxsdk.PageMetadata{
@@ -310,11 +310,11 @@ var cmdThings = []cobra.Command{
}
cl, err := sdk.ChannelsByThing(args[0], pm, args[1])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logJSON(cl)
logJSONCmd(*cmd, cl)
},
},
{
@@ -325,7 +325,7 @@ var cmdThings = []cobra.Command{
"\tmagistrala-cli things users <thing_id> $USERTOKEN\n",
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 2 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
pm := mgxsdk.PageMetadata{
@@ -334,11 +334,11 @@ var cmdThings = []cobra.Command{
}
ul, err := sdk.ListThingUsers(args[0], pm, args[1])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logJSON(ul)
logJSONCmd(*cmd, ul)
},
},
}
+59 -59
View File
@@ -20,7 +20,7 @@ var cmdUsers = []cobra.Command{
"\tmagistrala-cli users create user user@example.com 12345678 $USER_AUTH_TOKEN\n",
Run: func(cmd *cobra.Command, args []string) {
if len(args) < 3 || len(args) > 4 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
if len(args) == 3 {
@@ -37,11 +37,11 @@ var cmdUsers = []cobra.Command{
}
user, err := sdk.CreateUser(user, args[3])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logJSON(user)
logJSONCmd(*cmd, user)
},
},
{
@@ -54,12 +54,12 @@ var cmdUsers = []cobra.Command{
"\tmagistrala-cli users get <user_id> <user_auth_token> - shows user with provided <user_id>\n",
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 2 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
metadata, err := convertMetadata(Metadata)
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
pageMetadata := mgxsdk.PageMetadata{
@@ -72,19 +72,19 @@ var cmdUsers = []cobra.Command{
if args[0] == all {
l, err := sdk.Users(pageMetadata, args[1])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logJSON(l)
logJSONCmd(*cmd, l)
return
}
u, err := sdk.User(args[0], args[1])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logJSON(u)
logJSONCmd(*cmd, u)
},
},
{
@@ -95,7 +95,7 @@ var cmdUsers = []cobra.Command{
"\tmagistrala-cli users token user@example.com 12345678\n",
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 3 && len(args) != 2 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
@@ -109,11 +109,11 @@ var cmdUsers = []cobra.Command{
token, err := sdk.CreateToken(lg)
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logJSON(token)
logJSONCmd(*cmd, token)
},
},
{
@@ -124,7 +124,7 @@ var cmdUsers = []cobra.Command{
"\tmagistrala-cli users refreshtoken <refresh_token>\n",
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 2 && len(args) != 1 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
@@ -134,11 +134,11 @@ var cmdUsers = []cobra.Command{
}
token, err := sdk.RefreshToken(lg, args[0])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logJSON(token)
logJSONCmd(*cmd, token)
},
},
{
@@ -151,24 +151,24 @@ var cmdUsers = []cobra.Command{
"\tmagistrala-cli users update identity <user_id> newidentity@example.com $USERTOKEN - updates user identity\n",
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 4 && len(args) != 3 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
var user mgxsdk.User
if args[0] == "tags" {
if err := json.Unmarshal([]byte(args[2]), &user.Tags); err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
user.ID = args[1]
user, err := sdk.UpdateUserTags(user, args[3])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logJSON(user)
logJSONCmd(*cmd, user)
return
}
@@ -177,11 +177,11 @@ var cmdUsers = []cobra.Command{
user.Credentials.Identity = args[2]
user, err := sdk.UpdateUserIdentity(user, args[3])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logJSON(user)
logJSONCmd(*cmd, user)
return
}
@@ -191,27 +191,27 @@ var cmdUsers = []cobra.Command{
user.Role = args[2]
user, err := sdk.UpdateUserRole(user, args[3])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logJSON(user)
logJSONCmd(*cmd, user)
return
}
if err := json.Unmarshal([]byte(args[1]), &user); err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
user.ID = args[0]
user, err := sdk.UpdateUser(user, args[2])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logJSON(user)
logJSONCmd(*cmd, user)
},
},
{
@@ -222,17 +222,17 @@ var cmdUsers = []cobra.Command{
"\tmagistrala-cli users profile $USERTOKEN\n",
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 1 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
user, err := sdk.UserProfile(args[0])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logJSON(user)
logJSONCmd(*cmd, user)
},
},
{
@@ -243,16 +243,16 @@ var cmdUsers = []cobra.Command{
"\tmagistrala-cli users resetpasswordrequest example@mail.com\n",
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 1 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
if err := sdk.ResetPasswordRequest(args[0]); err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logOK()
logOKCmd(*cmd)
},
},
{
@@ -263,16 +263,16 @@ var cmdUsers = []cobra.Command{
"\tmagistrala-cli users resetpassword 12345678 12345678 $REQUESTTOKEN\n",
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 3 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
if err := sdk.ResetPassword(args[0], args[1], args[2]); err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logOK()
logOKCmd(*cmd)
},
},
{
@@ -283,17 +283,17 @@ var cmdUsers = []cobra.Command{
"\tmagistrala-cli users password old_password new_password $USERTOKEN\n",
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 3 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
user, err := sdk.UpdatePassword(args[0], args[1], args[2])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logJSON(user)
logJSONCmd(*cmd, user)
},
},
{
@@ -304,17 +304,17 @@ var cmdUsers = []cobra.Command{
"\tmagistrala-cli users enable <user_id> <user_auth_token>\n",
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 2 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
user, err := sdk.EnableUser(args[0], args[1])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logJSON(user)
logJSONCmd(*cmd, user)
},
},
{
@@ -325,17 +325,17 @@ var cmdUsers = []cobra.Command{
"\tmagistrala-cli users disable <user_id> <user_auth_token>\n",
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 2 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
user, err := sdk.DisableUser(args[0], args[1])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logJSON(user)
logJSONCmd(*cmd, user)
},
},
{
@@ -346,14 +346,14 @@ var cmdUsers = []cobra.Command{
"\tmagistrala-cli users delete <user_id> $USERTOKEN - delete user with <user_id>\n",
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 2 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
if err := sdk.DeleteUser(args[0], args[1]); err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logOK()
logOKCmd(*cmd)
},
},
{
@@ -364,7 +364,7 @@ var cmdUsers = []cobra.Command{
"\tmagistrala-cli users channels <user_id> <user_auth_token>\n",
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 2 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
@@ -375,11 +375,11 @@ var cmdUsers = []cobra.Command{
cp, err := sdk.ListUserChannels(args[0], pm, args[1])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logJSON(cp)
logJSONCmd(*cmd, cp)
},
},
@@ -391,7 +391,7 @@ var cmdUsers = []cobra.Command{
"\tmagistrala-cli users things <user_id> <user_auth_token>\n",
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 2 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
@@ -402,11 +402,11 @@ var cmdUsers = []cobra.Command{
tp, err := sdk.ListUserThings(args[0], pm, args[1])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logJSON(tp)
logJSONCmd(*cmd, tp)
},
},
@@ -418,7 +418,7 @@ var cmdUsers = []cobra.Command{
"\tmagistrala-cli users domains <user_id> <user_auth_token>\n",
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 2 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
@@ -429,11 +429,11 @@ var cmdUsers = []cobra.Command{
dp, err := sdk.ListUserDomains(args[0], pm, args[1])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logJSON(dp)
logJSONCmd(*cmd, dp)
},
},
@@ -445,7 +445,7 @@ var cmdUsers = []cobra.Command{
"\tmagistrala-cli users groups <user_id> <user_auth_token>\n",
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 2 {
logUsage(cmd.Use)
logUsageCmd(*cmd, cmd.Use)
return
}
@@ -456,11 +456,11 @@ var cmdUsers = []cobra.Command{
users, err := sdk.ListUserGroups(args[0], pm, args[1])
if err != nil {
logError(err)
logErrorCmd(*cmd, err)
return
}
logJSON(users)
logJSONCmd(*cmd, users)
},
},
}
+1336
View File
File diff suppressed because it is too large Load Diff
+18 -18
View File
@@ -6,11 +6,11 @@ package cli
import (
"encoding/json"
"fmt"
"os"
"time"
"github.com/fatih/color"
"github.com/hokaccha/go-prettyjson"
"github.com/spf13/cobra"
)
var (
@@ -38,52 +38,52 @@ var (
RawOutput bool = false
)
func logJSON(iList ...interface{}) {
func logJSONCmd(cmd cobra.Command, iList ...interface{}) {
for _, i := range iList {
m, err := json.Marshal(i)
if err != nil {
logError(err)
logErrorCmd(cmd, err)
return
}
pj, err := prettyjson.Format(m)
if err != nil {
logError(err)
logErrorCmd(cmd, err)
return
}
fmt.Fprintf(os.Stdout, "\n%s\n\n", string(pj))
fmt.Fprintf(cmd.OutOrStdout(), "\n%s\n\n", string(pj))
}
}
func logUsage(u string) {
fmt.Fprintf(os.Stdout, color.YellowString("\nusage: %s\n\n"), u)
func logUsageCmd(cmd cobra.Command, u string) {
fmt.Fprintf(cmd.OutOrStdout(), color.YellowString("\nusage: %s\n\n"), u)
}
func logError(err error) {
func logErrorCmd(cmd cobra.Command, err error) {
boldRed := color.New(color.FgRed, color.Bold)
boldRed.Fprintf(os.Stderr, "\nerror: ")
boldRed.Fprintf(cmd.ErrOrStderr(), "\nerror: ")
fmt.Fprintf(os.Stderr, "%s\n\n", color.RedString(err.Error()))
fmt.Fprintf(cmd.ErrOrStderr(), "%s\n\n", color.RedString(err.Error()))
}
func logOK() {
fmt.Fprintf(os.Stdout, "\n%s\n\n", color.BlueString("ok"))
func logOKCmd(cmd cobra.Command) {
fmt.Fprintf(cmd.OutOrStdout(), "\n%s\n\n", color.BlueString("ok"))
}
func logCreated(e string) {
func logCreatedCmd(cmd cobra.Command, e string) {
if RawOutput {
fmt.Fprintln(os.Stdout, e)
fmt.Fprintln(cmd.OutOrStdout(), e)
} else {
fmt.Fprintf(os.Stdout, color.BlueString("\ncreated: %s\n\n"), e)
fmt.Fprintf(cmd.OutOrStdout(), color.BlueString("\ncreated: %s\n\n"), e)
}
}
func logRevokedTime(t time.Time) {
func logRevokedTimeCmd(cmd cobra.Command, t time.Time) {
if RawOutput {
fmt.Fprintln(os.Stdout, t)
fmt.Fprintln(cmd.OutOrStdout(), t)
} else {
fmt.Fprintf(os.Stdout, color.BlueString("\nrevoked: %v\n\n"), t)
fmt.Fprintf(cmd.OutOrStdout(), color.BlueString("\nrevoked: %v\n\n"), t)
}
}