-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.go
74 lines (65 loc) · 1.53 KB
/
main.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
package main
import (
"context"
_ "embed"
"encoding/json"
"log/slog"
"os"
"time"
mld "github.com/MicahParks/magiclinksdev"
"github.com/MicahParks/magiclinksdev/client"
"github.com/MicahParks/magiclinksdev/mldtest"
"github.com/MicahParks/magiclinksdev/model"
)
func main() {
ctx, cancel := context.WithTimeout(context.Background(), time.Second)
defer cancel()
logger := slog.Default()
c, err := client.New(mldtest.APIKey, mldtest.Aud, mldtest.BaseURL, mldtest.Iss, client.Options{})
if err != nil {
logger.ErrorContext(ctx, "Failed to create client.",
mld.LogErr, err,
)
os.Exit(1)
}
claims, err := json.Marshal(mldtest.TClaims)
if err != nil {
logger.ErrorContext(ctx, "Failed to marshal claims.",
mld.LogErr, err,
)
os.Exit(1)
}
req := model.LinkCreateRequest{
LinkArgs: model.LinkCreateArgs{
JWTCreateArgs: model.JWTCreateArgs{
JWTClaims: claims,
JWTLifespanSeconds: 5,
},
LinkLifespan: 100,
RedirectQueryKey: "",
RedirectURL: "https://jwtdebug.micahparks.com",
},
}
resp, mldErr, err := c.LinkCreate(ctx, req)
if err != nil {
if mldErr.Code != 0 {
logger = logger.With(
"code", mldErr.Code,
"message", mldErr.Message,
"requestUUID", mldErr.RequestMetadata.UUID,
)
}
logger.ErrorContext(ctx, "Failed to create link.",
mld.LogErr, err,
)
os.Exit(1)
}
data, err := json.MarshalIndent(resp, "", " ")
if err != nil {
logger.ErrorContext(ctx, "Failed to marshal response.",
mld.LogErr, err,
)
os.Exit(1)
}
println(string(data))
}