Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions app/lib/methods/getSettings.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import settings from '../../constants/settings';
import log from '../../utils/log';
import database from '../database';
import protectedFunction from './helpers/protectedFunction';
import fetch from '../../utils/fetch';

const serverInfoKeys = ['Site_Name', 'UI_Use_Real_Name', 'FileUpload_MediaTypeWhiteList', 'FileUpload_MaxFileSize'];

Expand Down
2 changes: 2 additions & 0 deletions app/lib/methods/sendFileMessage.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import { sanitizedRaw } from '@nozbe/watermelondb/RawRecord';

import database from '../database';
import log from '../../utils/log';
import { headers } from '../../utils/fetch';

const uploadQueue = {};

Expand Down Expand Up @@ -78,6 +79,7 @@ export function sendFileMessage(rid, fileInfo, tmid, server, user) {

xhr.setRequestHeader('X-Auth-Token', token);
xhr.setRequestHeader('X-User-Id', id);
xhr.setRequestHeader('User-Agent', headers['User-Agent']);

xhr.upload.onprogress = async({ total, loaded }) => {
try {
Expand Down
5 changes: 4 additions & 1 deletion app/lib/rocketchat.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { AsyncStorage, InteractionManager } from 'react-native';
import semver from 'semver';
import { Rocketchat as RocketchatClient } from '@rocket.chat/sdk';
import { Rocketchat as RocketchatClient, settings as RocketChatSettings } from '@rocket.chat/sdk';
import RNUserDefaults from 'rn-user-defaults';
import { Q } from '@nozbe/watermelondb';
import * as FileSystem from 'expo-file-system';
Expand All @@ -12,6 +12,7 @@ import database from './database';
import log from '../utils/log';
import { isIOS, getBundleId } from '../utils/deviceInfo';
import { extractHostname } from '../utils/server';
import fetch, { headers } from '../utils/fetch';

import {
setUser, setLoginServices, loginRequest, loginFailure, logout
Expand Down Expand Up @@ -57,6 +58,8 @@ const MIN_ROCKETCHAT_VERSION = '0.70.0';

const STATUSES = ['offline', 'online', 'away', 'busy'];

RocketChatSettings.customHeaders = headers;

const RocketChat = {
TOKEN_KEY,
callJitsi,
Expand Down
12 changes: 12 additions & 0 deletions app/utils/fetch.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import { Platform } from 'react-native';
import DeviceInfo from 'react-native-device-info';

export const headers = { 'User-Agent': `RC-RN Mobile/${ DeviceInfo.getVersion() } (build: ${ DeviceInfo.getBuildNumber() }; os: ${ Platform.OS } ${ DeviceInfo.getSystemVersion() })` };

export default (url, options = {}) => {
let customOptions = { ...options, headers };
if (options && options.headers) {
customOptions = { ...customOptions, headers: { ...options.headers, ...headers } };
}
return fetch(url, customOptions);
};
60 changes: 60 additions & 0 deletions patches/@rocket.chat+sdk+1.0.0-alpha.31.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
diff --git a/node_modules/@rocket.chat/sdk/lib/api/api.js b/node_modules/@rocket.chat/sdk/lib/api/api.js
index 5b7dc21..49f1af5 100644
--- a/node_modules/@rocket.chat/sdk/lib/api/api.js
+++ b/node_modules/@rocket.chat/sdk/lib/api/api.js
@@ -62,6 +62,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
var log_1 = require("../log");
var message_1 = require("../message");
var tiny_events_1 = require("tiny-events");
+var settings = require("../settings");
var Client = /** @class */ (function () {
function Client(_a) {
var _b = _a.host, host = _b === void 0 ? 'http://localhost:3000' : _b;
@@ -70,7 +71,7 @@ var Client = /** @class */ (function () {
}
Object.defineProperty(Client.prototype, "headers", {
get: function () {
- return __assign({ 'Content-Type': 'application/json' }, this._headers);
+ return __assign({ 'Content-Type': 'application/json', ...settings.customHeaders }, this._headers);
},
set: function (obj) {
this._headers = obj;
diff --git a/node_modules/@rocket.chat/sdk/lib/drivers/ddp.js b/node_modules/@rocket.chat/sdk/lib/drivers/ddp.js
index e3510c7..e951959 100644
--- a/node_modules/@rocket.chat/sdk/lib/drivers/ddp.js
+++ b/node_modules/@rocket.chat/sdk/lib/drivers/ddp.js
@@ -110,6 +110,7 @@ tiny_events_1.EventEmitter.prototype.removeAllListeners = function (event) {
var interfaces_1 = require("../../interfaces");
var util_1 = require("../util");
var js_sha256_1 = require("js-sha256");
+var settings = require("../settings");
/** Websocket handler class, manages connections and subscriptions by DDP */
var Socket = /** @class */ (function (_super) {
__extends(Socket, _super);
@@ -145,7 +146,7 @@ var Socket = /** @class */ (function (_super) {
return !_this.alive() && _this.reopen();
}, ms);
try {
- connection = new universal_websocket_client_1.default(this.host);
+ connection = new universal_websocket_client_1.default(this.host, null, { headers: settings.customHeaders });
connection.onerror = reject;
}
catch (err) {
diff --git a/node_modules/@rocket.chat/sdk/lib/settings.d.ts b/node_modules/@rocket.chat/sdk/lib/settings.d.ts
index 99eb828..8c99307 100644
--- a/node_modules/@rocket.chat/sdk/lib/settings.d.ts
+++ b/node_modules/@rocket.chat/sdk/lib/settings.d.ts
@@ -17,3 +17,4 @@ export declare let dmCacheMaxAge: number;
export declare let token: string;
export declare let rid: string;
export declare let department: string;
+export declare let customHeaders: object;
diff --git a/node_modules/@rocket.chat/sdk/lib/settings.js b/node_modules/@rocket.chat/sdk/lib/settings.js
index 822c286..15f2688 100644
--- a/node_modules/@rocket.chat/sdk/lib/settings.js
+++ b/node_modules/@rocket.chat/sdk/lib/settings.js
@@ -30,3 +30,4 @@ exports.token = process.env.LIVECHAT_TOKEN || '';
exports.rid = process.env.LIVECHAT_ROOM || '';
exports.department = process.env.LIVECHAT_DEPARTMENT || '';
//# sourceMappingURL=settings.js.map
+exports.customHeaders = {};