package api import ( "context" commonHTTP "github.com/matrix-org/dendrite/internal/http" "github.com/matrix-org/gomatrixserverlib" "github.com/opentracing/opentracing-go" ) const ( // ServerKeyInputPublicKeyPath is the HTTP path for the InputPublicKeys API. ServerKeyInputPublicKeyPath = "/serverkeyapi/inputPublicKey" // ServerKeyQueryPublicKeyPath is the HTTP path for the QueryPublicKeys API. ServerKeyQueryPublicKeyPath = "/serverkeyapi/queryPublicKey" ) type InputPublicKeysRequest struct { Keys map[gomatrixserverlib.PublicKeyLookupRequest]gomatrixserverlib.PublicKeyLookupResult `json:"keys"` } type InputPublicKeysResponse struct { } func (h *httpServerKeyInternalAPI) InputPublicKeys( ctx context.Context, request *InputPublicKeysRequest, response *InputPublicKeysResponse, ) error { span, ctx := opentracing.StartSpanFromContext(ctx, "InputPublicKey") defer span.Finish() apiURL := h.serverKeyAPIURL + ServerKeyInputPublicKeyPath return commonHTTP.PostJSON(ctx, span, h.httpClient, apiURL, request, response) } type QueryPublicKeysRequest struct { Requests map[gomatrixserverlib.PublicKeyLookupRequest]gomatrixserverlib.Timestamp `json:"requests"` } type QueryPublicKeysResponse struct { Results map[gomatrixserverlib.PublicKeyLookupRequest]gomatrixserverlib.PublicKeyLookupResult `json:"results"` } func (h *httpServerKeyInternalAPI) QueryPublicKeys( ctx context.Context, request *QueryPublicKeysRequest, response *QueryPublicKeysResponse, ) error { span, ctx := opentracing.StartSpanFromContext(ctx, "QueryPublicKey") defer span.Finish() apiURL := h.serverKeyAPIURL + ServerKeyQueryPublicKeyPath return commonHTTP.PostJSON(ctx, span, h.httpClient, apiURL, request, response) }