mirror of
https://mau.dev/mautrix/go.git
synced 2026-03-14 14:25:53 +01:00
client: add type parameter to UIA request bodies (#469)
Some checks failed
Some checks failed
This commit is contained in:
parent
df24fb96e2
commit
c107c25d07
5 changed files with 18 additions and 18 deletions
|
|
@ -51,7 +51,7 @@ func (as *AppService) NewIntentAPI(localpart string) *IntentAPI {
|
|||
}
|
||||
|
||||
func (intent *IntentAPI) Register(ctx context.Context) error {
|
||||
_, err := intent.Client.MakeRequest(ctx, http.MethodPost, intent.BuildClientURL("v3", "register"), &mautrix.ReqRegister{
|
||||
_, err := intent.Client.MakeRequest(ctx, http.MethodPost, intent.BuildClientURL("v3", "register"), &mautrix.ReqRegister[any]{
|
||||
Username: intent.Localpart,
|
||||
Type: mautrix.AuthTypeAppservice,
|
||||
InhibitLogin: true,
|
||||
|
|
|
|||
14
client.go
14
client.go
|
|
@ -918,7 +918,7 @@ func (cli *Client) RegisterAvailable(ctx context.Context, username string) (resp
|
|||
return
|
||||
}
|
||||
|
||||
func (cli *Client) register(ctx context.Context, url string, req *ReqRegister) (resp *RespRegister, uiaResp *RespUserInteractive, err error) {
|
||||
func (cli *Client) register(ctx context.Context, url string, req *ReqRegister[any]) (resp *RespRegister, uiaResp *RespUserInteractive, err error) {
|
||||
var bodyBytes []byte
|
||||
bodyBytes, err = cli.MakeFullRequest(ctx, FullRequest{
|
||||
Method: http.MethodPost,
|
||||
|
|
@ -942,7 +942,7 @@ func (cli *Client) register(ctx context.Context, url string, req *ReqRegister) (
|
|||
// Register makes an HTTP request according to https://spec.matrix.org/v1.2/client-server-api/#post_matrixclientv3register
|
||||
//
|
||||
// Registers with kind=user. For kind=guest, see RegisterGuest.
|
||||
func (cli *Client) Register(ctx context.Context, req *ReqRegister) (*RespRegister, *RespUserInteractive, error) {
|
||||
func (cli *Client) Register(ctx context.Context, req *ReqRegister[any]) (*RespRegister, *RespUserInteractive, error) {
|
||||
u := cli.BuildClientURL("v3", "register")
|
||||
return cli.register(ctx, u, req)
|
||||
}
|
||||
|
|
@ -951,7 +951,7 @@ func (cli *Client) Register(ctx context.Context, req *ReqRegister) (*RespRegiste
|
|||
// with kind=guest.
|
||||
//
|
||||
// For kind=user, see Register.
|
||||
func (cli *Client) RegisterGuest(ctx context.Context, req *ReqRegister) (*RespRegister, *RespUserInteractive, error) {
|
||||
func (cli *Client) RegisterGuest(ctx context.Context, req *ReqRegister[any]) (*RespRegister, *RespUserInteractive, error) {
|
||||
query := map[string]string{
|
||||
"kind": "guest",
|
||||
}
|
||||
|
|
@ -974,7 +974,7 @@ func (cli *Client) RegisterGuest(ctx context.Context, req *ReqRegister) (*RespRe
|
|||
// panic(err)
|
||||
// }
|
||||
// token := res.AccessToken
|
||||
func (cli *Client) RegisterDummy(ctx context.Context, req *ReqRegister) (*RespRegister, error) {
|
||||
func (cli *Client) RegisterDummy(ctx context.Context, req *ReqRegister[any]) (*RespRegister, error) {
|
||||
_, uia, err := cli.Register(ctx, req)
|
||||
if err != nil && uia == nil {
|
||||
return nil, err
|
||||
|
|
@ -2687,13 +2687,13 @@ func (cli *Client) SetDeviceInfo(ctx context.Context, deviceID id.DeviceID, req
|
|||
return err
|
||||
}
|
||||
|
||||
func (cli *Client) DeleteDevice(ctx context.Context, deviceID id.DeviceID, req *ReqDeleteDevice) error {
|
||||
func (cli *Client) DeleteDevice(ctx context.Context, deviceID id.DeviceID, req *ReqDeleteDevice[any]) error {
|
||||
urlPath := cli.BuildClientURL("v3", "devices", deviceID)
|
||||
_, err := cli.MakeRequest(ctx, http.MethodDelete, urlPath, req, nil)
|
||||
return err
|
||||
}
|
||||
|
||||
func (cli *Client) DeleteDevices(ctx context.Context, req *ReqDeleteDevices) error {
|
||||
func (cli *Client) DeleteDevices(ctx context.Context, req *ReqDeleteDevices[any]) error {
|
||||
urlPath := cli.BuildClientURL("v3", "delete_devices")
|
||||
_, err := cli.MakeRequest(ctx, http.MethodPost, urlPath, req, nil)
|
||||
return err
|
||||
|
|
@ -2704,7 +2704,7 @@ type UIACallback = func(*RespUserInteractive) interface{}
|
|||
// UploadCrossSigningKeys uploads the given cross-signing keys to the server.
|
||||
// Because the endpoint requires user-interactive authentication a callback must be provided that,
|
||||
// given the UI auth parameters, produces the required result (or nil to end the flow).
|
||||
func (cli *Client) UploadCrossSigningKeys(ctx context.Context, keys *UploadCrossSigningKeysReq, uiaCallback UIACallback) error {
|
||||
func (cli *Client) UploadCrossSigningKeys(ctx context.Context, keys *UploadCrossSigningKeysReq[any], uiaCallback UIACallback) error {
|
||||
content, err := cli.MakeFullRequest(ctx, FullRequest{
|
||||
Method: http.MethodPost,
|
||||
URL: cli.BuildClientURL("v3", "keys", "device_signing", "upload"),
|
||||
|
|
|
|||
|
|
@ -135,7 +135,7 @@ func (mach *OlmMachine) PublishCrossSigningKeys(ctx context.Context, keys *Cross
|
|||
}
|
||||
userKey.Signatures = signatures.NewSingleSignature(userID, id.KeyAlgorithmEd25519, keys.MasterKey.PublicKey().String(), userSig)
|
||||
|
||||
err = mach.Client.UploadCrossSigningKeys(ctx, &mautrix.UploadCrossSigningKeysReq{
|
||||
err = mach.Client.UploadCrossSigningKeys(ctx, &mautrix.UploadCrossSigningKeysReq[any]{
|
||||
Master: masterKey,
|
||||
SelfSigning: selfKey,
|
||||
UserSigning: userKey,
|
||||
|
|
|
|||
|
|
@ -231,7 +231,7 @@ func (ms *MockServer) postKeysUpload(w http.ResponseWriter, r *http.Request) {
|
|||
}
|
||||
|
||||
func (ms *MockServer) postDeviceSigningUpload(w http.ResponseWriter, r *http.Request) {
|
||||
var req mautrix.UploadCrossSigningKeysReq
|
||||
var req mautrix.UploadCrossSigningKeysReq[any]
|
||||
mustDecode(r, &req)
|
||||
|
||||
userID := ms.getUserID(r).UserID
|
||||
|
|
|
|||
16
requests.go
16
requests.go
|
|
@ -66,14 +66,14 @@ const (
|
|||
)
|
||||
|
||||
// ReqRegister is the JSON request for https://spec.matrix.org/v1.2/client-server-api/#post_matrixclientv3register
|
||||
type ReqRegister struct {
|
||||
type ReqRegister[UIAType any] struct {
|
||||
Username string `json:"username,omitempty"`
|
||||
Password string `json:"password,omitempty"`
|
||||
DeviceID id.DeviceID `json:"device_id,omitempty"`
|
||||
InitialDeviceDisplayName string `json:"initial_device_display_name,omitempty"`
|
||||
InhibitLogin bool `json:"inhibit_login,omitempty"`
|
||||
RefreshToken bool `json:"refresh_token,omitempty"`
|
||||
Auth interface{} `json:"auth,omitempty"`
|
||||
Auth UIAType `json:"auth,omitempty"`
|
||||
|
||||
// Type for registration, only used for appservice user registrations
|
||||
// https://spec.matrix.org/v1.2/application-service-api/#server-admin-style-permissions
|
||||
|
|
@ -320,11 +320,11 @@ func (csk *CrossSigningKeys) FirstKey() id.Ed25519 {
|
|||
return ""
|
||||
}
|
||||
|
||||
type UploadCrossSigningKeysReq struct {
|
||||
type UploadCrossSigningKeysReq[UIAType any] struct {
|
||||
Master CrossSigningKeys `json:"master_key"`
|
||||
SelfSigning CrossSigningKeys `json:"self_signing_key"`
|
||||
UserSigning CrossSigningKeys `json:"user_signing_key"`
|
||||
Auth interface{} `json:"auth,omitempty"`
|
||||
Auth UIAType `json:"auth,omitempty"`
|
||||
}
|
||||
|
||||
type KeyMap map[id.DeviceKeyID]string
|
||||
|
|
@ -392,14 +392,14 @@ type ReqDeviceInfo struct {
|
|||
}
|
||||
|
||||
// ReqDeleteDevice is the JSON request for https://spec.matrix.org/v1.2/client-server-api/#delete_matrixclientv3devicesdeviceid
|
||||
type ReqDeleteDevice struct {
|
||||
Auth interface{} `json:"auth,omitempty"`
|
||||
type ReqDeleteDevice[UIAType any] struct {
|
||||
Auth UIAType `json:"auth,omitempty"`
|
||||
}
|
||||
|
||||
// ReqDeleteDevices is the JSON request for https://spec.matrix.org/v1.2/client-server-api/#post_matrixclientv3delete_devices
|
||||
type ReqDeleteDevices struct {
|
||||
type ReqDeleteDevices[UIAType any] struct {
|
||||
Devices []id.DeviceID `json:"devices"`
|
||||
Auth interface{} `json:"auth,omitempty"`
|
||||
Auth UIAType `json:"auth,omitempty"`
|
||||
}
|
||||
|
||||
type ReqPutPushRule struct {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue