re-add dest generate

This commit is contained in:
idk
2022-04-26 14:28:04 -04:00
parent 35e4ae3c89
commit 6aed9d7cec

54
dest.go Normal file
View File

@ -0,0 +1,54 @@
package goSam
import (
"fmt"
"strconv"
"strings"
)
func validateKindInner(kind string) string {
if strings.HasPrefix(kind, "SIGNATURE_TYPE=") {
return kind
}
return "SIGNATURE_TYPE=" + kind
}
func validateKind(kind string) (string, error) {
//convert kind to int
kint, err := strconv.Atoi(kind)
if err != nil {
for _, k := range SAMsigTypes {
if strings.HasSuffix(k, kind) {
return validateKindInner(kind), nil
}
}
}
if kint >= 0 && kint <= 7 {
return validateKindInner(kind), nil
}
return "SIGNATURE_TYPE=7", fmt.Errorf("Invalid sigType: %s", kind)
}
// Generate a new destination and return the base64 encoded string
func (c *Client) NewDestination(kind ...string) (string, string, error) {
if len(kind) == 0 {
kind = []string{"7"}
} else {
var err error
kind[0], err = validateKind(kind[0])
if err != nil {
if c.debug {
fmt.Println(err)
}
}
}
r, err := c.sendCmd("DEST GENERATE %s\n", kind[0])
if err != nil {
return "", "", err
}
if r.Topic != "DEST" {
return "", "", fmt.Errorf("NewDestination Unknown Reply: %+v\n", r)
}
return r.Pairs["PRIV"], r.Pairs["PUB"], nil
}