1
0
mirror of https://github.com/matrix-org/matrix-js-sdk.git synced 2025-11-25 05:23:13 +03:00

Support for MSC2140 (terms of service for IS/IM)

This commit is contained in:
David Baker
2019-07-09 18:50:01 +01:00
parent 60e339bac0
commit e9528ebb98
4 changed files with 59 additions and 0 deletions

View File

@@ -1,6 +1,7 @@
/*
Copyright 2015, 2016 OpenMarket Ltd
Copyright 2017 Vector Creations Ltd
Copyright 2019 The Matrix.org Foundation C.I.C.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -16,6 +17,8 @@ limitations under the License.
*/
"use strict";
import { SERVICETYPES } from './servicetypes';
/**
* This is an internal module. MatrixBaseApis is currently only meant to be used
* by {@link client~MatrixClient}.
@@ -26,6 +29,17 @@ limitations under the License.
const httpApi = require("./http-api");
const utils = require("./utils");
function termsUrlForService(serviceType, baseUrl) {
switch (serviceType) {
case SERVICETYPES.IS:
return baseUrl + httpApi.PREFIX_IDENTITY_V2
case SERVICETYPES.IM:
return baseUrl + '/terms/'
default:
throw new Error('Unsupported service type');
}
}
/**
* Low-level wrappers for the Matrix APIs
*
@@ -1888,6 +1902,23 @@ MatrixBaseApis.prototype.getThirdpartyUser = function(protocol, params) {
);
};
MatrixBaseApis.prototype.getTerms = function(serviceType, baseUrl, accessToken) {
const url = termsUrlForService(serviceType, baseUrl);
return this._http.requestOtherUrl(
undefined, 'GET', url, null, null, null,
);
};
MatrixBaseApis.prototype.agreeToTerms = function(serviceType, baseUrl, accessToken, termsUrls) {
const url = termsUrlForService(serviceType, baseUrl);
const headers = {
Authorization: "Bearer " + accessToken,
};
return this._http.requestOtherUrl(
undefined, 'POST', url, null, {user_accepts: termsUrls}, { headers },
);
};
/**
* MatrixBaseApis object
*/