Skip to content

Commit e36d41a

Browse files
committed
Consolidate API prefixes into enums with method
1 parent 7231c68 commit e36d41a

File tree

5 files changed

+118
-78
lines changed

5 files changed

+118
-78
lines changed

src/client.ts

Lines changed: 33 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -57,14 +57,11 @@ import {
5757
MatrixError,
5858
MatrixHttpApi,
5959
Method,
60-
PREFIX_IDENTITY_V2,
61-
PREFIX_MEDIA_R0,
62-
PREFIX_R0,
63-
PREFIX_UNSTABLE,
64-
PREFIX_V1,
65-
PREFIX_V3,
6660
retryNetworkOperation,
6761
UploadContentResponseType,
62+
ClientPrefix,
63+
MediaPrefix,
64+
IdentityPrefix,
6865
} from "./http-api";
6966
import {
7067
Crypto,
@@ -1001,7 +998,7 @@ export class MatrixClient extends TypedEventEmitter<EmittedEvents, ClientEventHa
1001998
idBaseUrl: opts.idBaseUrl,
1002999
accessToken: opts.accessToken,
10031000
request: opts.request,
1004-
prefix: PREFIX_R0,
1001+
prefix: ClientPrefix.R0,
10051002
onlyData: true,
10061003
extraParams: opts.queryParams,
10071004
localTimeoutMs: opts.localTimeoutMs,
@@ -2693,7 +2690,7 @@ export class MatrixClient extends TypedEventEmitter<EmittedEvents, ClientEventHa
26932690
try {
26942691
res = await this.http.authedRequest<IKeyBackupInfo>(
26952692
undefined, Method.Get, "/room_keys/version", undefined, undefined,
2696-
{ prefix: PREFIX_UNSTABLE },
2693+
{ prefix: ClientPrefix.Unstable },
26972694
);
26982695
} catch (e) {
26992696
if (e.errcode === 'M_NOT_FOUND') {
@@ -2849,7 +2846,7 @@ export class MatrixClient extends TypedEventEmitter<EmittedEvents, ClientEventHa
28492846

28502847
const res = await this.http.authedRequest<IKeyBackupInfo>(
28512848
undefined, Method.Post, "/room_keys/version", undefined, data,
2852-
{ prefix: PREFIX_UNSTABLE },
2849+
{ prefix: ClientPrefix.Unstable },
28532850
);
28542851

28552852
// We could assume everything's okay and enable directly, but this ensures
@@ -2881,7 +2878,7 @@ export class MatrixClient extends TypedEventEmitter<EmittedEvents, ClientEventHa
28812878

28822879
return this.http.authedRequest(
28832880
undefined, Method.Delete, path, undefined, undefined,
2884-
{ prefix: PREFIX_UNSTABLE },
2881+
{ prefix: ClientPrefix.Unstable },
28852882
);
28862883
}
28872884

@@ -2935,7 +2932,7 @@ export class MatrixClient extends TypedEventEmitter<EmittedEvents, ClientEventHa
29352932
const path = this.makeKeyBackupPath(roomId, sessionId, version);
29362933
return this.http.authedRequest(
29372934
undefined, Method.Put, path.path, path.queryData, data,
2938-
{ prefix: PREFIX_UNSTABLE },
2935+
{ prefix: ClientPrefix.Unstable },
29392936
);
29402937
}
29412938

@@ -3226,7 +3223,7 @@ export class MatrixClient extends TypedEventEmitter<EmittedEvents, ClientEventHa
32263223

32273224
const res = await this.http.authedRequest<IRoomsKeysResponse | IRoomKeysResponse | IKeyBackupSession>(
32283225
undefined, Method.Get, path.path, path.queryData, undefined,
3229-
{ prefix: PREFIX_UNSTABLE },
3226+
{ prefix: ClientPrefix.Unstable },
32303227
);
32313228

32323229
if ((res as IRoomsKeysResponse).rooms) {
@@ -3291,7 +3288,7 @@ export class MatrixClient extends TypedEventEmitter<EmittedEvents, ClientEventHa
32913288
const path = this.makeKeyBackupPath(roomId, sessionId, version);
32923289
return this.http.authedRequest(
32933290
undefined, Method.Delete, path.path, path.queryData, undefined,
3294-
{ prefix: PREFIX_UNSTABLE },
3291+
{ prefix: ClientPrefix.Unstable },
32953292
);
32963293
}
32973294

@@ -3337,7 +3334,7 @@ export class MatrixClient extends TypedEventEmitter<EmittedEvents, ClientEventHa
33373334
public getMediaConfig(callback?: Callback): Promise<IMediaConfig> {
33383335
return this.http.authedRequest(
33393336
callback, Method.Get, "/config", undefined, undefined, {
3340-
prefix: PREFIX_MEDIA_R0,
3337+
prefix: MediaPrefix.R0,
33413338
},
33423339
);
33433340
}
@@ -4760,7 +4757,7 @@ export class MatrixClient extends TypedEventEmitter<EmittedEvents, ClientEventHa
47604757
url,
47614758
ts: ts.toString(),
47624759
}, undefined, {
4763-
prefix: PREFIX_MEDIA_R0,
4760+
prefix: MediaPrefix.R0,
47644761
},
47654762
);
47664763
// TODO: Expire the URL preview cache sometimes
@@ -6586,7 +6583,7 @@ export class MatrixClient extends TypedEventEmitter<EmittedEvents, ClientEventHa
65866583

65876584
const res = await this.http.authedRequest<{ joined: string[] }>(
65886585
undefined, Method.Get, path, undefined, undefined,
6589-
{ prefix: PREFIX_UNSTABLE },
6586+
{ prefix: ClientPrefix.Unstable },
65906587
);
65916588
return res.joined;
65926589
}
@@ -6888,7 +6885,7 @@ export class MatrixClient extends TypedEventEmitter<EmittedEvents, ClientEventHa
68886885
private termsUrlForService(serviceType: SERVICE_TYPES, baseUrl: string) {
68896886
switch (serviceType) {
68906887
case SERVICE_TYPES.IS:
6891-
return baseUrl + PREFIX_IDENTITY_V2 + '/terms';
6888+
return baseUrl + IdentityPrefix.V2 + '/terms';
68926889
case SERVICE_TYPES.IM:
68936890
return baseUrl + '/_matrix/integrations/v1/terms';
68946891
default:
@@ -7115,7 +7112,7 @@ export class MatrixClient extends TypedEventEmitter<EmittedEvents, ClientEventHa
71157112
undefined,
71167113
{ refresh_token: refreshToken },
71177114
{
7118-
prefix: PREFIX_V1,
7115+
prefix: ClientPrefix.V1,
71197116
inhibitLogoutEmit: true, // we don't want to cause logout loops
71207117
},
71217118
);
@@ -7221,7 +7218,7 @@ export class MatrixClient extends TypedEventEmitter<EmittedEvents, ClientEventHa
72217218
[SSO_ACTION_PARAM.unstable!]: action,
72227219
};
72237220

7224-
return this.http.getUrl(url, params, PREFIX_R0);
7221+
return this.http.getUrl(url, params, ClientPrefix.R0);
72257222
}
72267223

72277224
/**
@@ -7312,7 +7309,7 @@ export class MatrixClient extends TypedEventEmitter<EmittedEvents, ClientEventHa
73127309
"/org.matrix.msc3882/login/token",
73137310
undefined, // no query params
73147311
body,
7315-
{ prefix: PREFIX_UNSTABLE },
7312+
{ prefix: ClientPrefix.Unstable },
73167313
);
73177314
}
73187315

@@ -7331,7 +7328,7 @@ export class MatrixClient extends TypedEventEmitter<EmittedEvents, ClientEventHa
73317328

73327329
return this.http.getUrl(path, {
73337330
session: authSessionId,
7334-
}, PREFIX_R0);
7331+
}, ClientPrefix.R0);
73357332
}
73367333

73377334
/**
@@ -7411,7 +7408,7 @@ export class MatrixClient extends TypedEventEmitter<EmittedEvents, ClientEventHa
74117408
});
74127409
return this.http.authedRequest(
74137410
undefined, Method.Get, path, undefined, undefined, {
7414-
prefix: PREFIX_UNSTABLE,
7411+
prefix: ClientPrefix.Unstable,
74157412
},
74167413
);
74177414
}
@@ -7714,7 +7711,7 @@ export class MatrixClient extends TypedEventEmitter<EmittedEvents, ClientEventHa
77147711
*/
77157712
public getLocalAliases(roomId: string): Promise<{ aliases: string[] }> {
77167713
const path = utils.encodeUri("/rooms/$roomId/aliases", { $roomId: roomId });
7717-
const prefix = PREFIX_V3;
7714+
const prefix = ClientPrefix.V3;
77187715
return this.http.authedRequest(undefined, Method.Get, path, undefined, undefined, { prefix });
77197716
}
77207717

@@ -7970,7 +7967,7 @@ export class MatrixClient extends TypedEventEmitter<EmittedEvents, ClientEventHa
79707967
*/
79717968
public async addThreePidOnly(data: IAddThreePidOnlyBody): Promise<{}> {
79727969
const path = "/account/3pid/add";
7973-
const prefix = await this.isVersionSupported("r0.6.0") ? PREFIX_R0 : PREFIX_UNSTABLE;
7970+
const prefix = await this.isVersionSupported("r0.6.0") ? ClientPrefix.R0 : ClientPrefix.Unstable;
79747971
return this.http.authedRequest(undefined, Method.Post, path, undefined, data, { prefix });
79757972
}
79767973

@@ -7990,8 +7987,7 @@ export class MatrixClient extends TypedEventEmitter<EmittedEvents, ClientEventHa
79907987
*/
79917988
public async bindThreePid(data: IBindThreePidBody): Promise<{}> {
79927989
const path = "/account/3pid/bind";
7993-
const prefix = await this.isVersionSupported("r0.6.0") ?
7994-
PREFIX_R0 : PREFIX_UNSTABLE;
7990+
const prefix = await this.isVersionSupported("r0.6.0") ? ClientPrefix.R0 : ClientPrefix.Unstable;
79957991
return this.http.authedRequest(
79967992
undefined, Method.Post, path, undefined, data, { prefix },
79977993
);
@@ -8019,7 +8015,7 @@ export class MatrixClient extends TypedEventEmitter<EmittedEvents, ClientEventHa
80198015
address,
80208016
id_server: this.getIdentityServerUrl(true),
80218017
};
8022-
const prefix = await this.isVersionSupported("r0.6.0") ? PREFIX_R0 : PREFIX_UNSTABLE;
8018+
const prefix = await this.isVersionSupported("r0.6.0") ? ClientPrefix.R0 : ClientPrefix.Unstable;
80238019
return this.http.authedRequest(undefined, Method.Post, path, undefined, data, { prefix });
80248020
}
80258021

@@ -8374,7 +8370,7 @@ export class MatrixClient extends TypedEventEmitter<EmittedEvents, ClientEventHa
83748370
return this.http.authedRequest(
83758371
undefined, Method.Post, '/keys/signatures/upload', undefined,
83768372
content, {
8377-
prefix: PREFIX_UNSTABLE,
8373+
prefix: ClientPrefix.Unstable,
83788374
},
83798375
);
83808376
}
@@ -8475,7 +8471,7 @@ export class MatrixClient extends TypedEventEmitter<EmittedEvents, ClientEventHa
84758471
if (auth) Object.assign(data, { auth });
84768472
return this.http.authedRequest(
84778473
undefined, Method.Post, "/keys/device_signing/upload", undefined, data, {
8478-
prefix: PREFIX_UNSTABLE,
8474+
prefix: ClientPrefix.Unstable,
84798475
},
84808476
);
84818477
}
@@ -8498,7 +8494,7 @@ export class MatrixClient extends TypedEventEmitter<EmittedEvents, ClientEventHa
84988494
throw new Error("No identity server base URL set");
84998495
}
85008496

8501-
const uri = this.idBaseUrl + PREFIX_IDENTITY_V2 + "/account/register";
8497+
const uri = this.idBaseUrl + IdentityPrefix.V2 + "/account/register";
85028498
return this.http.requestOtherUrl(
85038499
undefined, Method.Post, uri,
85048500
null, hsOpenIdToken,
@@ -8546,7 +8542,7 @@ export class MatrixClient extends TypedEventEmitter<EmittedEvents, ClientEventHa
85468542

85478543
return this.http.idServerRequest(
85488544
callback, Method.Post, "/validate/email/requestToken",
8549-
params, PREFIX_IDENTITY_V2, identityAccessToken,
8545+
params, IdentityPrefix.V2, identityAccessToken,
85508546
);
85518547
}
85528548

@@ -8596,7 +8592,7 @@ export class MatrixClient extends TypedEventEmitter<EmittedEvents, ClientEventHa
85968592

85978593
return this.http.idServerRequest(
85988594
callback, Method.Post, "/validate/msisdn/requestToken",
8599-
params, PREFIX_IDENTITY_V2, identityAccessToken,
8595+
params, IdentityPrefix.V2, identityAccessToken,
86008596
);
86018597
}
86028598

@@ -8633,7 +8629,7 @@ export class MatrixClient extends TypedEventEmitter<EmittedEvents, ClientEventHa
86338629

86348630
return this.http.idServerRequest(
86358631
undefined, Method.Post, "/validate/msisdn/submitToken",
8636-
params, PREFIX_IDENTITY_V2, identityAccessToken,
8632+
params, IdentityPrefix.V2, identityAccessToken,
86378633
);
86388634
}
86398635

@@ -8681,7 +8677,7 @@ export class MatrixClient extends TypedEventEmitter<EmittedEvents, ClientEventHa
86818677
public getIdentityHashDetails(identityAccessToken: string): Promise<any> { // TODO: Types
86828678
return this.http.idServerRequest(
86838679
undefined, Method.Get, "/hash_details",
8684-
null, PREFIX_IDENTITY_V2, identityAccessToken,
8680+
null, IdentityPrefix.V2, identityAccessToken,
86858681
);
86868682
}
86878683

@@ -8750,7 +8746,7 @@ export class MatrixClient extends TypedEventEmitter<EmittedEvents, ClientEventHa
87508746

87518747
const response = await this.http.idServerRequest(
87528748
undefined, Method.Post, "/lookup",
8753-
params, PREFIX_IDENTITY_V2, identityAccessToken,
8749+
params, IdentityPrefix.V2, identityAccessToken,
87548750
);
87558751

87568752
if (!response || !response['mappings']) return []; // no results
@@ -8868,7 +8864,7 @@ export class MatrixClient extends TypedEventEmitter<EmittedEvents, ClientEventHa
88688864
public getIdentityAccount(identityAccessToken: string): Promise<any> { // TODO: Types
88698865
return this.http.idServerRequest(
88708866
undefined, Method.Get, "/account",
8871-
undefined, PREFIX_IDENTITY_V2, identityAccessToken,
8867+
undefined, IdentityPrefix.V2, identityAccessToken,
88728868
);
88738869
}
88748870

@@ -9035,7 +9031,7 @@ export class MatrixClient extends TypedEventEmitter<EmittedEvents, ClientEventHa
90359031
};
90369032

90379033
return this.http.authedRequest<IRoomHierarchy>(undefined, Method.Get, path, queryParams, undefined, {
9038-
prefix: PREFIX_V1,
9034+
prefix: ClientPrefix.V1,
90399035
}).catch(e => {
90409036
if (e.errcode === "M_UNRECOGNIZED") {
90419037
// fall back to the prefixed hierarchy API.

src/crypto/EncryptionSetup.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import { logger } from "../logger";
1818
import { MatrixEvent } from "../models/event";
1919
import { createCryptoStoreCacheCallbacks, ICacheCallbacks } from "./CrossSigning";
2020
import { IndexedDBCryptoStore } from './store/indexeddb-crypto-store';
21-
import { Method, PREFIX_UNSTABLE } from "../http-api";
21+
import { Method, ClientPrefix } from "../http-api";
2222
import { Crypto, IBootstrapCrossSigningOpts } from "./index";
2323
import {
2424
ClientEvent,
@@ -246,14 +246,14 @@ export class EncryptionSetupOperation {
246246
algorithm: this.keyBackupInfo.algorithm,
247247
auth_data: this.keyBackupInfo.auth_data,
248248
},
249-
{ prefix: PREFIX_UNSTABLE },
249+
{ prefix: ClientPrefix.Unstable },
250250
);
251251
} else {
252252
// add new key backup
253253
await baseApis.http.authedRequest(
254254
undefined, Method.Post, "/room_keys/version",
255255
undefined, this.keyBackupInfo,
256-
{ prefix: PREFIX_UNSTABLE },
256+
{ prefix: ClientPrefix.Unstable },
257257
);
258258
}
259259
}

src/http-api.ts

Lines changed: 5 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ import { IDeferred, sleep } from "./utils";
3434
import { Callback } from "./client";
3535
import * as utils from "./utils";
3636
import { logger } from './logger';
37+
import { MediaPrefix } from "./http-api/prefix";
3738
import { TypedEventEmitter } from "./models/typed-event-emitter";
3839

3940
/*
@@ -42,42 +43,6 @@ TODO:
4243
- Identity server: linkEmail, authEmail, bindEmail, lookup3pid
4344
*/
4445

45-
/**
46-
* A constant representing the URI path for release 0 of the Client-Server HTTP API.
47-
*/
48-
export const PREFIX_R0 = "/_matrix/client/r0";
49-
50-
/**
51-
* A constant representing the URI path for the legacy release v1 of the Client-Server HTTP API.
52-
*/
53-
export const PREFIX_V1 = "/_matrix/client/v1";
54-
55-
/**
56-
* A constant representing the URI path for Client-Server API endpoints versioned at v3.
57-
*/
58-
export const PREFIX_V3 = "/_matrix/client/v3";
59-
60-
/**
61-
* A constant representing the URI path for as-yet unspecified Client-Server HTTP APIs.
62-
*/
63-
export const PREFIX_UNSTABLE = "/_matrix/client/unstable";
64-
65-
/**
66-
* URI path for v1 of the the identity API
67-
* @deprecated Use v2.
68-
*/
69-
export const PREFIX_IDENTITY_V1 = "/_matrix/identity/api/v1";
70-
71-
/**
72-
* URI path for the v2 identity API
73-
*/
74-
export const PREFIX_IDENTITY_V2 = "/_matrix/identity/v2";
75-
76-
/**
77-
* URI path for the media repo API
78-
*/
79-
export const PREFIX_MEDIA_R0 = "/_matrix/media/r0";
80-
8146
type RequestProps = "method"
8247
| "withCredentials"
8348
| "json"
@@ -168,6 +133,8 @@ export enum Method {
168133
Delete = "DELETE",
169134
}
170135

136+
export * from "./http-api/prefix";
137+
171138
export type FileType = Document | XMLHttpRequestBodyInit;
172139

173140
export enum HttpApiEvent {
@@ -429,7 +396,7 @@ export class MatrixHttpApi {
429396
});
430397
}
431398
});
432-
let url = this.opts.baseUrl + "/_matrix/media/r0/upload";
399+
let url = this.opts.baseUrl + MediaPrefix.R0 + "/upload";
433400

434401
const queryArgs = [];
435402

@@ -474,7 +441,7 @@ export class MatrixHttpApi {
474441

475442
promise = this.authedRequest<UploadContentResponseType<O>>(
476443
opts.callback, Method.Post, "/upload", queryParams, body, {
477-
prefix: "/_matrix/media/r0",
444+
prefix: MediaPrefix.R0,
478445
headers,
479446
json: false,
480447
bodyParser,

0 commit comments

Comments
 (0)