// Copyright (c) Mainflux // SPDX-License-Identifier: Apache-2.0 package cli import ( mfxsdk "github.com/mainflux/mainflux/pkg/sdk/go" "github.com/spf13/cobra" ) var cmdSubscription = []cobra.Command{ { Use: "create ", Short: "Create subscription", Long: `Create new subscription`, Run: func(cmd *cobra.Command, args []string) { if len(args) != 3 { logUsage(cmd.Use) return } id, err := sdk.CreateSubscription(args[0], args[1], args[2]) if err != nil { logError(err) return } logCreated(id) }, }, { Use: "get [all | ] ", Short: "Get subscription", Long: `Get subscription. all - lists all subscriptions - view subscription of `, Run: func(cmd *cobra.Command, args []string) { if len(args) != 2 { logUsage(cmd.Use) return } pageMetadata := mfxsdk.PageMetadata{ Offset: Offset, Limit: Limit, Topic: Topic, Contact: Contact, } if args[0] == "all" { sub, err := sdk.ListSubscriptions(pageMetadata, args[1]) if err != nil { logError(err) return } logJSON(sub) return } c, err := sdk.ViewSubscription(args[0], args[1]) if err != nil { logError(err) return } logJSON(c) }, }, { Use: "remove ", Short: "Remove subscription", Long: `Removes removes a subscription with the provided id`, Run: func(cmd *cobra.Command, args []string) { if len(args) != 2 { logUsage(cmd.Use) return } if err := sdk.DeleteSubscription(args[0], args[1]); err != nil { logError(err) return } logOK() }, }, } // NewSubscriptionCmd returns subscription command. func NewSubscriptionCmd() *cobra.Command { cmd := cobra.Command{ Use: "subscription [create | get | remove ]", Short: "Subscription management", Long: `Subscription management: create, get, or delete subscription`, } for i := range cmdSubscription { cmd.AddCommand(&cmdSubscription[i]) } return &cmd }