mirror of
https://github.com/sonr-io/sonr.git
synced 2026-08-03 01:41:44 +00:00
45 lines
1.1 KiB
Go
45 lines
1.1 KiB
Go
package middleware
|
|||
|
|
|
||
|
|
import (
|
||
|
|
"net/http"
|
||
|
|
|
||
|
|
"github.com/labstack/echo/v4"
|
||
|
|
"github.com/onsonr/sonr/internal/database/repository"
|
||
|
|
"github.com/onsonr/sonr/pkg/gateway/types"
|
||
|
|
)
|
||
|
|
|
||
|
|
func ListCredentials(c echo.Context, handle string) ([]*types.CredentialDescriptor, error) {
|
||
|
|
cc, ok := c.(*GatewayContext)
|
||
|
|
if !ok {
|
||
|
|
return nil, echo.NewHTTPError(http.StatusInternalServerError, "Credentials Context not found")
|
||
|
|
}
|
||
|
|
creds, err := cc.dbq.GetCredentialsByHandle(bgCtx(), handle)
|
||
|
|
if err != nil {
|
||
|
|
return nil, err
|
||
|
|
}
|
||
|
|
return types.CredentialArrayToDescriptors(creds), nil
|
||
|
|
}
|
||
|
|
|
||
|
|
func SubmitCredential(c echo.Context, cred *types.CredentialDescriptor) error {
|
||
|
|
origin := GetOrigin(c)
|
||
|
|
handle := GetHandle(c)
|
||
|
|
md := cred.ToModel(handle, origin)
|
||
|
|
|
||
|
|
cc, ok := c.(*GatewayContext)
|
||
|
|
if !ok {
|
||
|
|
return echo.NewHTTPError(http.StatusInternalServerError, "Credentials Context not found")
|
||
|
|
}
|
||
|
|
|
||
|
|
_, err := cc.dbq.InsertCredential(bgCtx(), repository.InsertCredentialParams{
|
||
|
|
Handle: handle,
|
||
|
|
CredentialID: md.CredentialID,
|
||
|
|
Origin: origin,
|
||
|
|
Type: md.Type,
|
||
|
|
Transports: md.Transports,
|
||
|
|
})
|
||
|
|
if err != nil {
|
||
|
|
return err
|
||
|
|
}
|
||
|
|
return nil
|
||
|
|
}
|