Files
m3o-go/password/password.go
2022-03-02 17:15:22 +00:00

48 lines
1.1 KiB
Go
Executable File

package password
import (
"go.m3o.com/client"
)
type Password interface {
Generate(*GenerateRequest) (*GenerateResponse, error)
}
func NewPasswordService(token string) *PasswordService {
return &PasswordService{
client: client.NewClient(&client.Options{
Token: token,
}),
}
}
type PasswordService struct {
client *client.Client
}
// Generate a strong random password. Use the switches to control which character types are included, defaults to using all of them
func (t *PasswordService) Generate(request *GenerateRequest) (*GenerateResponse, error) {
rsp := &GenerateResponse{}
return rsp, t.client.Call("password", "Generate", request, rsp)
}
type GenerateRequest struct {
// password length; defaults to 8 chars
Length int32 `json:"length"`
// include lowercase letters
Lowercase bool `json:"lowercase"`
// include numbers
Numbers bool `json:"numbers"`
// include special characters (!@#$%&*)
Special bool `json:"special"`
// include uppercase letters
Uppercase bool `json:"uppercase"`
}
type GenerateResponse struct {
// The generated password
Password string `json:"password"`
}