mirror of
https://github.com/kevin-DL/m3o-go.git
synced 2026-01-11 10:34:27 +00:00
48 lines
1.1 KiB
Go
Executable File
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"`
|
|
}
|