From 4c5adc5dc98d9d1581b02e8665d8df92842372e0 Mon Sep 17 00:00:00 2001
From: Rodrigo Nascimento <rodrigoknascimento@gmail.com>
Date: Wed, 9 Aug 2017 17:18:00 -0300
Subject: [PATCH] Rename meteor.js to rocketchat.js

---
 app/lib/meteor.js       | 173 ---------------------------------------
 app/lib/rocketchat.js   | 175 ++++++++++++++++++++++++++++++++++++++++
 app/views/login.js      |   4 +-
 app/views/room.js       |   6 +-
 app/views/roomsList.js  |   8 +-
 app/views/serverList.js |   4 +-
 app/views/serverNew.js  |   2 +-
 7 files changed, 186 insertions(+), 186 deletions(-)
 delete mode 100644 app/lib/meteor.js
 create mode 100644 app/lib/rocketchat.js

diff --git a/app/lib/meteor.js b/app/lib/meteor.js
deleted file mode 100644
index 0ce5a5efb..000000000
--- a/app/lib/meteor.js
+++ /dev/null
@@ -1,173 +0,0 @@
-import Meteor from 'react-native-meteor';
-import Random from 'react-native-meteor/lib/Random';
-import realm from './realm';
-
-export { Accounts } from 'react-native-meteor';
-
-const RocketChat = {
-	get currentServer() {
-		const current = realm.objects('servers').filtered('current = true')[0];
-		return current && current.id;
-	},
-
-	set currentServer(server) {
-		realm.write(() => {
-			realm.objects('servers').filtered('current = true').forEach(item => (item.current = false));
-			realm.create('servers', { id: server, current: true }, true);
-		});
-	}
-};
-
-export default RocketChat;
-
-Meteor.Accounts.onLogin(() => {
-	Meteor.call('subscriptions/get', (err, data) => {
-		if (err) {
-			console.error(err);
-		}
-
-		realm.write(() => {
-			data.forEach((subscription) => {
-				// const subscription = {
-				// 	_id: item._id
-				// };
-				// if (typeof item.value === 'string') {
-				// 	subscription.value = item.value;
-				// }
-				subscription._server = { id: RocketChat.currentServer };
-				realm.create('subscriptions', subscription, true);
-			});
-		});
-		Meteor.subscribe('stream-notify-user', `${ Meteor.userId() }/subscriptions-changed`, false);
-	});
-});
-
-export function connect(cb) {
-	const url = `${ RocketChat.currentServer }/websocket`;
-
-	Meteor.connect(url);
-
-	Meteor.ddp.on('connected', () => {
-		console.log('connected');
-
-		Meteor.call('public-settings/get', (err, data) => {
-			if (err) {
-				console.error(err);
-			}
-
-			realm.write(() => {
-				data.forEach((item) => {
-					const setting = {
-						_id: item._id
-					};
-					setting._server = { id: RocketChat.currentServer };
-					if (typeof item.value === 'string') {
-						setting.value = item.value;
-					}
-					realm.create('settings', setting, true);
-				});
-			});
-
-			cb();
-		});
-
-		Meteor.ddp.on('changed', (ddbMessage) => {
-			console.log('changed', ddbMessage);
-			if (ddbMessage.collection === 'stream-room-messages') {
-				realm.write(() => {
-					const message = ddbMessage.fields.args[0];
-					message.temp = false;
-					message._server = { id: RocketChat.currentServer };
-					realm.create('messages', message, true);
-				});
-			}
-
-			if (ddbMessage.collection === 'stream-notify-user') {
-				realm.write(() => {
-					const data = ddbMessage.fields.args[1];
-					data._server = { id: RocketChat.currentServer };
-					realm.create('subscriptions', data, true);
-				});
-			}
-		});
-	});
-}
-
-export function loginWithPassword(selector, password, cb) {
-	Meteor.loginWithPassword(selector, password, () => cb && cb());
-}
-
-export function loadSubscriptions(cb) {
-	Meteor.call('subscriptions/get', (err, data) => {
-		if (err) {
-			console.error(err);
-		}
-
-		realm.write(() => {
-			data.forEach((subscription) => {
-				// const subscription = {
-				// 	_id: item._id
-				// };
-				// if (typeof item.value === 'string') {
-				// 	subscription.value = item.value;
-				// }
-				subscription._server = { id: RocketChat.currentServer };
-				realm.create('subscriptions', subscription, true);
-			});
-		});
-
-		return cb && cb();
-	});
-}
-
-export function loadMessagesForRoom(rid, cb) {
-	Meteor.call('loadHistory', rid, null, 50, (err, data) => {
-		if (err) {
-			console.error(err);
-		}
-
-		realm.write(() => {
-			data.messages.forEach((message) => {
-				message.temp = false;
-				message._server = { id: RocketChat.currentServer };
-				realm.create('messages', message, true);
-			});
-		});
-
-		if (cb) {
-			cb();
-		}
-	});
-
-	Meteor.subscribe('stream-room-messages', rid, false);
-}
-
-export function sendMessage(rid, msg) {
-	const _id = Random.id();
-	const user = Meteor.user();
-
-	realm.write(() => {
-		realm.create('messages', {
-			_id,
-			rid,
-			msg,
-			ts: new Date(),
-			_updatedAt: new Date(),
-			temp: true,
-			_server: { id: RocketChat.currentServer },
-			u: {
-				_id: user._id,
-				username: user.username
-			}
-		}, true);
-	});
-
-	return new Promise((resolve, reject) => {
-		Meteor.call('sendMessage', { _id, rid, msg }, (error, result) => {
-			if (error) {
-				return reject(error);
-			}
-			return resolve(result);
-		});
-	});
-}
diff --git a/app/lib/rocketchat.js b/app/lib/rocketchat.js
new file mode 100644
index 000000000..3ed431b5f
--- /dev/null
+++ b/app/lib/rocketchat.js
@@ -0,0 +1,175 @@
+import Meteor from 'react-native-meteor';
+import Random from 'react-native-meteor/lib/Random';
+import realm from './realm';
+
+export { Accounts } from 'react-native-meteor';
+
+const RocketChat = {
+	get currentServer() {
+		const current = realm.objects('servers').filtered('current = true')[0];
+		return current && current.id;
+	},
+
+	set currentServer(server) {
+		realm.write(() => {
+			realm.objects('servers').filtered('current = true').forEach(item => (item.current = false));
+			realm.create('servers', { id: server, current: true }, true);
+		});
+	},
+
+	connect(cb) {
+		const url = `${ RocketChat.currentServer }/websocket`;
+
+		Meteor.connect(url);
+
+		Meteor.ddp.on('connected', () => {
+			console.log('connected');
+
+			Meteor.call('public-settings/get', (err, data) => {
+				if (err) {
+					console.error(err);
+				}
+
+				realm.write(() => {
+					data.forEach((item) => {
+						const setting = {
+							_id: item._id
+						};
+						setting._server = { id: RocketChat.currentServer };
+						if (typeof item.value === 'string') {
+							setting.value = item.value;
+						}
+						realm.create('settings', setting, true);
+					});
+				});
+
+				if (cb) {
+					cb();
+				}
+			});
+
+			Meteor.ddp.on('changed', (ddbMessage) => {
+				console.log('changed', ddbMessage);
+				if (ddbMessage.collection === 'stream-room-messages') {
+					realm.write(() => {
+						const message = ddbMessage.fields.args[0];
+						message.temp = false;
+						message._server = { id: RocketChat.currentServer };
+						realm.create('messages', message, true);
+					});
+				}
+
+				if (ddbMessage.collection === 'stream-notify-user') {
+					realm.write(() => {
+						const data = ddbMessage.fields.args[1];
+						data._server = { id: RocketChat.currentServer };
+						realm.create('subscriptions', data, true);
+					});
+				}
+			});
+		});
+	},
+
+	loginWithPassword(selector, password, cb) {
+		Meteor.loginWithPassword(selector, password, () => cb && cb());
+	},
+
+	loadSubscriptions(cb) {
+		Meteor.call('subscriptions/get', (err, data) => {
+			if (err) {
+				console.error(err);
+			}
+
+			realm.write(() => {
+				data.forEach((subscription) => {
+					// const subscription = {
+					// 	_id: item._id
+					// };
+					// if (typeof item.value === 'string') {
+					// 	subscription.value = item.value;
+					// }
+					subscription._server = { id: RocketChat.currentServer };
+					realm.create('subscriptions', subscription, true);
+				});
+			});
+
+			return cb && cb();
+		});
+	},
+
+	loadMessagesForRoom(rid, cb) {
+		Meteor.call('loadHistory', rid, null, 50, (err, data) => {
+			if (err) {
+				console.error(err);
+			}
+
+			realm.write(() => {
+				data.messages.forEach((message) => {
+					message.temp = false;
+					message._server = { id: RocketChat.currentServer };
+					realm.create('messages', message, true);
+				});
+			});
+
+			if (cb) {
+				cb();
+			}
+		});
+
+		Meteor.subscribe('stream-room-messages', rid, false);
+	},
+
+	sendMessage(rid, msg) {
+		const _id = Random.id();
+		const user = Meteor.user();
+
+		realm.write(() => {
+			realm.create('messages', {
+				_id,
+				rid,
+				msg,
+				ts: new Date(),
+				_updatedAt: new Date(),
+				temp: true,
+				_server: { id: RocketChat.currentServer },
+				u: {
+					_id: user._id,
+					username: user.username
+				}
+			}, true);
+		});
+
+		return new Promise((resolve, reject) => {
+			Meteor.call('sendMessage', { _id, rid, msg }, (error, result) => {
+				if (error) {
+					return reject(error);
+				}
+				return resolve(result);
+			});
+		});
+	}
+};
+
+export default RocketChat;
+
+Meteor.Accounts.onLogin(() => {
+	Meteor.call('subscriptions/get', (err, data) => {
+		if (err) {
+			console.error(err);
+		}
+
+		realm.write(() => {
+			data.forEach((subscription) => {
+				// const subscription = {
+				// 	_id: item._id
+				// };
+				// if (typeof item.value === 'string') {
+				// 	subscription.value = item.value;
+				// }
+				subscription._server = { id: RocketChat.currentServer };
+				realm.create('subscriptions', subscription, true);
+			});
+		});
+		Meteor.subscribe('stream-notify-user', `${ Meteor.userId() }/subscriptions-changed`, false);
+	});
+});
diff --git a/app/views/login.js b/app/views/login.js
index 014459053..962d733ab 100644
--- a/app/views/login.js
+++ b/app/views/login.js
@@ -1,7 +1,7 @@
 import React from 'react';
 import PropTypes from 'prop-types';
 import { TextInput, StyleSheet } from 'react-native';
-import { loginWithPassword } from '../lib/meteor';
+import RocketChat from '../lib/rocketchat';
 
 import KeyboardView from '../components/KeyboardView';
 
@@ -42,7 +42,7 @@ export default class LoginView extends React.Component {
 		};
 
 		this.submit = () => {
-			loginWithPassword({ username: this.state.username }, this.state.password, () => {
+			RocketChat.loginWithPassword({ username: this.state.username }, this.state.password, () => {
 				this.props.navigation.dispatch({ type: 'Navigation/BACK' });
 			});
 		};
diff --git a/app/views/room.js b/app/views/room.js
index 1548ab940..1fd2832a9 100644
--- a/app/views/room.js
+++ b/app/views/room.js
@@ -3,7 +3,7 @@ import PropTypes from 'prop-types';
 import { Text, View, FlatList, StyleSheet } from 'react-native';
 // import Markdown from 'react-native-simple-markdown';
 import realm from '../lib/realm';
-import RocketChat, { loadMessagesForRoom, sendMessage } from '../lib/meteor';
+import RocketChat from '../lib/rocketchat';
 
 import Message from '../components/Message';
 import MessageBox from '../components/MessageBox';
@@ -54,7 +54,7 @@ export default class RoomView extends React.Component {
 	}
 
 	componentWillMount() {
-		loadMessagesForRoom(this.rid, () => {
+		RocketChat.loadMessagesForRoom(this.rid, () => {
 			this.setState({
 				...this.state,
 				loaded: true
@@ -76,7 +76,7 @@ export default class RoomView extends React.Component {
 		});
 	};
 
-	sendMessage = message => sendMessage(this.rid, message);
+	sendMessage = message => RocketChat.sendMessage(this.rid, message);
 
 	renderSeparator = () => (
 		<View style={styles.separator} />
diff --git a/app/views/roomsList.js b/app/views/roomsList.js
index f76bddcf3..e7f07c369 100644
--- a/app/views/roomsList.js
+++ b/app/views/roomsList.js
@@ -3,7 +3,7 @@ import PropTypes from 'prop-types';
 import { Text, View, FlatList, StyleSheet } from 'react-native';
 import Meteor from 'react-native-meteor';
 import realm from '../lib/realm';
-import RocketChat, { connect } from '../lib/meteor';
+import RocketChat from '../lib/rocketchat';
 
 import RoomItem from '../components/RoomItem';
 
@@ -75,9 +75,7 @@ export default class RoomsListView extends React.Component {
 		navigation = this.props.navigation;
 
 		if (RocketChat.currentServer) {
-			connect(() => {
-				// navigation.navigate('Login');
-			});
+			RocketChat.connect();
 		} else {
 			navigation.navigate('ListServerModal');
 		}
@@ -127,7 +125,7 @@ export default class RoomsListView extends React.Component {
 				<View style={[styles.bannerContainer, { backgroundColor: 'orange' }]}>
 					<Text style={[styles.bannerText, { color: '#a00' }]}>Authenticating...</Text>
 				</View>
-			)
+			);
 		}
 	}
 
diff --git a/app/views/serverList.js b/app/views/serverList.js
index 6396bac92..a149a6f48 100644
--- a/app/views/serverList.js
+++ b/app/views/serverList.js
@@ -4,7 +4,7 @@ import Zeroconf from 'react-native-zeroconf';
 import { View, Text, SectionList, Button, StyleSheet } from 'react-native';
 
 import realm from '../lib/realm';
-import RocketChat, { connect } from '../lib/meteor';
+import RocketChat from '../lib/rocketchat';
 
 const styles = StyleSheet.create({
 	view: {
@@ -88,7 +88,7 @@ export default class ListServerView extends React.Component {
 	onPressItem(item) {
 		RocketChat.currentServer = item.id;
 
-		connect(() => {});
+		RocketChat.connect();
 		this.props.navigation.dispatch({ type: 'Navigation/BACK' });
 	}
 
diff --git a/app/views/serverNew.js b/app/views/serverNew.js
index eb3f9580b..3a933e8f7 100644
--- a/app/views/serverNew.js
+++ b/app/views/serverNew.js
@@ -2,7 +2,7 @@ import React from 'react';
 import PropTypes from 'prop-types';
 import { TextInput, StyleSheet } from 'react-native';
 
-import RocketChat from '../lib/meteor';
+import RocketChat from '../lib/rocketchat';
 
 import KeyboardView from '../components/KeyboardView';
 
-- 
GitLab