Skip to content
Snippets Groups Projects
Commit 768adcac authored by Steffen Schulze's avatar Steffen Schulze
Browse files

connection details added

parent 50ca2894
No related branches found
No related tags found
1 merge request!10Refactoring
Pipeline #41273 failed with stages
in 50 seconds
......@@ -16,6 +16,11 @@ import (
"gitlab.eclipse.org/eclipse/xfsc/common-services/didcomm-connector/protocol"
)
type ConnectionResponse struct {
database.Mediatee
DidDoc *mediator.DidDocumentJSON `json:"didDocument,omitempty"`
}
// @Summary Get connections
// @Schemes
// @Description Returns a list with the existing connections
......@@ -41,8 +46,24 @@ func (app *application) GetConnections(context *gin.Context) {
config.Logger.Error(logTag, "Error", err)
context.Status(http.StatusInternalServerError)
}
var responseObjects = make([]ConnectionResponse, 0)
for _, x := range connections {
doc, _ := app.mediator.DidResolver.ResolveDidAsJson(x.RemoteDid)
response := ConnectionResponse{
Mediatee: x,
DidDoc: doc,
}
responseObjects = append(responseObjects, response)
}
config.Logger.Info(logTag, "End", true)
context.JSON(http.StatusOK, connections)
context.JSON(http.StatusOK, responseObjects)
}
......@@ -67,8 +88,16 @@ func (app *application) GetConnection(context *gin.Context) {
context.Status(http.StatusInternalServerError)
return
}
doc, _ := app.mediator.DidResolver.ResolveDidAsJson(did)
response := ConnectionResponse{
Mediatee: *connection,
DidDoc: doc,
}
config.Logger.Info(logTag, "End", true)
context.IndentedJSON(http.StatusOK, connection)
context.IndentedJSON(http.StatusOK, response)
}
// @Summary Create a new connection
......
......@@ -68,6 +68,7 @@ type DidResolutionMetadataJSON struct {
type DidResolver interface {
Resolve(did string, cb *didcomm.OnDidResolverResult) didcomm.ErrorCode
ResolveDid(did string) (*didcomm.DidDoc, error)
ResolveDidAsJson(did string) (*DidDocumentJSON, error)
}
type UniverseDidResolver struct {
......@@ -121,6 +122,29 @@ func (u *UniverseDidResolver) ResolveDid(did string) (*didcomm.DidDoc, error) {
return didDoc, nil
}
func (u *UniverseDidResolver) ResolveDidAsJson(did string) (*DidDocumentJSON, error) {
queryUrl, err := url.JoinPath(config.CurrentConfiguration.DidComm.ResolverUrl, "/1.0/identifiers/", did)
if err != nil {
return nil, err
}
resp, err := http.Get(queryUrl)
if err != nil {
return nil, err
}
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
if err != nil {
return nil, err
}
var didDocJSON DidDocumentJSON
err = json.Unmarshal(body, &didDocJSON)
if err != nil {
config.Logger.Error("Unmarshaling has failed:", "err", err)
return nil, err
}
return &didDocJSON, nil
}
func (u *UniverseDidResolver) didDocJsonToDidDoc(ddJson DidDocumentJSON) *didcomm.DidDoc {
// Convert VerificationMethods
var VerificationMethods []didcomm.VerificationMethod = make([]didcomm.VerificationMethod, len(ddJson.DidDocument.VerificationMethod))
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment