Files
ucan/toolkit/_example/_protocol-issuer/request-resolver.go

42 lines
794 B
Go
Raw Normal View History

2025-02-06 14:19:30 +01:00
package protocol
import (
"encoding/json"
"net/http"
"code.sonr.org/go/did-it"
2025-02-06 14:19:30 +01:00
"code.sonr.org/go/ucan/pkg/command"
"code.sonr.org/go/ucan/toolkit/issuer"
2025-02-06 14:19:30 +01:00
)
func RequestResolver(r *http.Request) (*issuer.ResolvedRequest, error) {
// Let's make up a simple json protocol
req := struct {
Audience string `json:"aud"`
Cmd string `json:"cmd"`
Subject string `json:"sub"`
}{}
err := json.NewDecoder(r.Body).Decode(&req)
if err != nil {
return nil, err
}
aud, err := did.Parse(req.Audience)
if err != nil {
return nil, err
}
cmd, err := command.Parse(req.Cmd)
if err != nil {
return nil, err
}
sub, err := did.Parse(req.Subject)
if err != nil {
return nil, err
}
return &issuer.ResolvedRequest{
Audience: aud,
Cmd: cmd,
Subject: sub,
}, nil
}