forked from toorop/ovh-cli
/
sms.go
90 lines (83 loc) · 2.55 KB
/
sms.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
package main
import (
"fmt"
"github.com/codegangsta/cli"
"github.com/toorop/govh"
"github.com/toorop/govh/sms"
"strings"
)
// getFwCmds return commands for firewall subsection
func getSmsCmds(client *govh.OvhClient) (smsCmds []cli.Command) {
sr, err := sms.New(client)
if err != nil {
return
}
smsCmds = []cli.Command{
{
Name: "listServices",
Usage: "Return a list of sms services ",
Description: "ovh sms listServices" + NLTAB + "Example: ovh sms listServices",
Action: func(c *cli.Context) {
services, err := sr.ListServices()
handleErrFromOvh(err)
for _, service := range services {
fmt.Println(service)
}
dieOk()
},
},
{
Name: "send",
Usage: "Send an new SMS",
Description: `ovh sms send SERVICE [--flags...]" + NLTAB + "Example: ovh sms send sms-st2-1 --sender +33979XXXX --receivers +336222XXXX +336221XXXX --message "Test from ovh-cli"`,
Flags: []cli.Flag{
cli.StringFlag{"sender", "", "The sender phone number in international format (+33XXXXXX for France for ex). Required.", ""},
cli.StringSliceFlag{"receiver", &cli.StringSlice{}, "Receiver phone number. If you have multiple receivers add on --receiver flag by reciever. Requiered.", ""},
cli.StringFlag{"message", "", "The message you want to send. Required", ""},
},
Action: func(c *cli.Context) {
dieIfArgsMiss(len(c.Args()), 1)
// sender
sender := c.String("sender")
if sender == "" {
dieBadArgs("Required flag --sender is missing")
}
// recievers
receivers := c.StringSlice("receiver")
if receivers == nil {
dieBadArgs("Required flag --receivers is missing")
}
/*for _, rcv := range receivers {
fmt.Println(rcv)
}*/
// message
message := c.String("message")
if message == "" {
dieBadArgs("Required flag --message is missing")
}
// ValidityPeriod
validityPeriod := 2880
// Class
class := "sim"
// Create the job
job := &sms.SendJob{
Sender: sender,
Receivers: receivers,
Message: message,
ValidityPeriod: validityPeriod,
Class: class,
}
resp, err := sr.AddJob(c.Args().First(), job)
handleErrFromOvh(err)
for _, id := range resp.Ids {
fmt.Println("Job ID:", id)
}
fmt.Println("Invalid receivers:", strings.Join(resp.InvalidReceivers, ", "))
fmt.Println("Valid receivers:", strings.Join(resp.ValidReceivers, ", "))
fmt.Println("Credits removed:", fmt.Sprintf("%d", resp.TotalCreditsRemoved))
dieDone()
},
},
}
return
}