Blame


1 5e70998a 2022-04-12 o package mailmux
2 5e70998a 2022-04-12 o
3 5e70998a 2022-04-12 o import (
4 5e70998a 2022-04-12 o "fmt"
5 5e70998a 2022-04-12 o "net/http"
6 5e70998a 2022-04-12 o "net/url"
7 5e70998a 2022-04-12 o )
8 5e70998a 2022-04-12 o
9 5e70998a 2022-04-12 o const apiurl = "https://mailmux.net/v1/aliases"
10 5e70998a 2022-04-12 o
11 5e70998a 2022-04-12 o type Client struct {
12 5e70998a 2022-04-12 o *http.Client
13 5e70998a 2022-04-12 o user string
14 5e70998a 2022-04-12 o token string
15 5e70998a 2022-04-12 o }
16 5e70998a 2022-04-12 o
17 5e70998a 2022-04-12 o func NewClient(user, token string) *Client {
18 5e70998a 2022-04-12 o return &Client{http.DefaultClient, user, token}
19 5e70998a 2022-04-12 o }
20 5e70998a 2022-04-12 o
21 5e70998a 2022-04-12 o func (c *Client) NewAlias() (Alias, error) {
22 5e70998a 2022-04-12 o v := url.Values{}
23 5e70998a 2022-04-12 o v.Add("user", c.user)
24 5e70998a 2022-04-12 o v.Add("token", c.token)
25 5e70998a 2022-04-12 o resp, err := http.PostForm(apiurl, v)
26 5e70998a 2022-04-12 o if err != nil {
27 5e70998a 2022-04-12 o return Alias{}, err
28 5e70998a 2022-04-12 o }
29 5e70998a 2022-04-12 o defer resp.Body.Close()
30 5e70998a 2022-04-12 o return Alias{}, nil
31 5e70998a 2022-04-12 o }
32 5e70998a 2022-04-12 o
33 5e70998a 2022-04-12 o func (c *Client) Aliases() ([]Alias, error) {
34 5e70998a 2022-04-12 o v := url.Values{}
35 5e70998a 2022-04-12 o v.Add("user", c.user)
36 5e70998a 2022-04-12 o v.Add("token", c.token)
37 5e70998a 2022-04-12 o req, err := http.NewRequest(http.MethodGet, apiurl, nil)
38 5e70998a 2022-04-12 o if err != nil {
39 5e70998a 2022-04-12 o return nil, fmt.Errorf("list aliases: %w", err)
40 5e70998a 2022-04-12 o }
41 5e70998a 2022-04-12 o req.URL.RawQuery = v.Encode()
42 5e70998a 2022-04-12 o resp, err := c.Do(req)
43 5e70998a 2022-04-12 o if err != nil {
44 5e70998a 2022-04-12 o return nil, fmt.Errorf("list aliases: %w", err)
45 5e70998a 2022-04-12 o }
46 5e70998a 2022-04-12 o defer resp.Body.Close()
47 5e70998a 2022-04-12 o return nil, nil
48 5e70998a 2022-04-12 o }