Просмотр исходного кода

decaffeinate: Convert ContactManager.coffee and 3 other files to JS

decaffeinate 6 лет назад
Родитель
Сommit
af36ed629b

+ 43 - 27
services/contacts/app/coffee/ContactManager.js

@@ -1,38 +1,54 @@
-{db, ObjectId} = require "./mongojs"
-logger = require('logger-sharelatex')
-metrics = require('metrics-sharelatex')
+/*
+ * decaffeinate suggestions:
+ * DS102: Remove unnecessary code created because of implicit returns
+ * DS207: Consider shorter variations of null checks
+ * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
+ */
+let ContactManager;
+const {db, ObjectId} = require("./mongojs");
+const logger = require('logger-sharelatex');
+const metrics = require('metrics-sharelatex');
 
-module.exports = ContactManager =
-	touchContact: (user_id, contact_id, callback = (error) ->) ->
-		try
-			user_id = ObjectId(user_id.toString())
-		catch error
-			return callback error
+module.exports = (ContactManager = {
+	touchContact(user_id, contact_id, callback) {
+		if (callback == null) { callback = function(error) {}; }
+		try {
+			user_id = ObjectId(user_id.toString());
+		} catch (error1) {
+			const error = error1;
+			return callback(error);
+		}
 
-		update = { $set: {}, $inc: {} }
-		update.$inc["contacts.#{contact_id}.n"] = 1
-		update.$set["contacts.#{contact_id}.ts"] = new Date()
+		const update = { $set: {}, $inc: {} };
+		update.$inc[`contacts.${contact_id}.n`] = 1;
+		update.$set[`contacts.${contact_id}.ts`] = new Date();
 
-		db.contacts.update({
-			user_id: user_id
+		return db.contacts.update({
+			user_id
 		}, update, {
 			upsert: true
-		}, callback)
+		}, callback);
+	},
 	
-	getContacts: (user_id, callback = (error) ->) ->
-		try
-			user_id = ObjectId(user_id.toString())
-		catch error
-			return callback error
+	getContacts(user_id, callback) {
+		if (callback == null) { callback = function(error) {}; }
+		try {
+			user_id = ObjectId(user_id.toString());
+		} catch (error1) {
+			const error = error1;
+			return callback(error);
+		}
 		
-		db.contacts.findOne {
-			user_id: user_id
-		}, (error, user) ->
-			return callback(error) if error?
-			callback null, user?.contacts
+		return db.contacts.findOne({
+			user_id
+		}, function(error, user) {
+			if (error != null) { return callback(error); }
+			return callback(null, user != null ? user.contacts : undefined);
+		});
+	}
+});
 
 [
 	'touchContact',
 	'getContacts',
-].map (method) ->
-	metrics.timeAsyncMethod(ContactManager, method, 'mongo.ContactManager', logger)
+].map(method => metrics.timeAsyncMethod(ContactManager, method, 'mongo.ContactManager', logger));

+ 10 - 8
services/contacts/app/coffee/Errors.js

@@ -1,10 +1,12 @@
-NotFoundError = (message) ->
-	error = new Error(message)
-	error.name = "NotFoundError"
-	error.__proto__ = NotFoundError.prototype
-	return error
-NotFoundError.prototype.__proto__ = Error.prototype
+let Errors;
+var NotFoundError = function(message) {
+	const error = new Error(message);
+	error.name = "NotFoundError";
+	error.__proto__ = NotFoundError.prototype;
+	return error;
+};
+NotFoundError.prototype.__proto__ = Error.prototype;
 
-module.exports = Errors =
-	NotFoundError: NotFoundError
+module.exports = (Errors =
+	{NotFoundError});
 

+ 76 - 53
services/contacts/app/coffee/HttpController.js

@@ -1,66 +1,89 @@
-ContactManager = require "./ContactManager"
-logger = require "logger-sharelatex"
+/*
+ * decaffeinate suggestions:
+ * DS102: Remove unnecessary code created because of implicit returns
+ * DS207: Consider shorter variations of null checks
+ * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
+ */
+let HttpController;
+const ContactManager = require("./ContactManager");
+const logger = require("logger-sharelatex");
 
-module.exports = HttpController =
-	addContact: (req, res, next) ->
-		{user_id} = req.params
-		{contact_id} = req.body
+module.exports = (HttpController = {
+	addContact(req, res, next) {
+		const {user_id} = req.params;
+		const {contact_id} = req.body;
 		
-		if !contact_id? or contact_id == ""
-			res.status(400).send("contact_id should be a non-blank string")
-			return
+		if ((contact_id == null) || (contact_id === "")) {
+			res.status(400).send("contact_id should be a non-blank string");
+			return;
+		}
 			
-		logger.log {user_id, contact_id}, "adding contact"
+		logger.log({user_id, contact_id}, "adding contact");
 
-		ContactManager.touchContact user_id, contact_id, (error) ->
-			return next(error) if error?
-			ContactManager.touchContact contact_id, user_id, (error) ->
-				return next(error) if error?
-				res.status(204).end()
+		return ContactManager.touchContact(user_id, contact_id, function(error) {
+			if (error != null) { return next(error); }
+			return ContactManager.touchContact(contact_id, user_id, function(error) {
+				if (error != null) { return next(error); }
+				return res.status(204).end();
+			});
+		});
+	},
 
-	CONTACT_LIMIT: 50
-	getContacts: (req, res, next) ->
-		{user_id} = req.params
+	CONTACT_LIMIT: 50,
+	getContacts(req, res, next) {
+		let limit;
+		let {user_id} = req.params;
 
-		if req.query?.limit?
-			limit = parseInt(req.query.limit, 10)
-		else
-			limit = HttpController.CONTACT_LIMIT
-		limit = Math.min(limit, HttpController.CONTACT_LIMIT)
+		if ((req.query != null ? req.query.limit : undefined) != null) {
+			limit = parseInt(req.query.limit, 10);
+		} else {
+			limit = HttpController.CONTACT_LIMIT;
+		}
+		limit = Math.min(limit, HttpController.CONTACT_LIMIT);
 
-		logger.log {user_id}, "getting contacts"
+		logger.log({user_id}, "getting contacts");
 
-		ContactManager.getContacts user_id, (error, contact_dict) ->
-			return next(error) if error?
+		return ContactManager.getContacts(user_id, function(error, contact_dict) {
+			if (error != null) { return next(error); }
 			
-			contacts = []
-			for user_id, data of (contact_dict or {})
-				contacts.push {
-					user_id: user_id
-					n: data.n
+			let contacts = [];
+			const object = contact_dict || {};
+			for (user_id in object) {
+				const data = object[user_id];
+				contacts.push({
+					user_id,
+					n: data.n,
 					ts: data.ts
-				}
+				});
+			}
 
-			HttpController._sortContacts contacts
-			contacts = contacts.slice(0, limit)
-			contact_ids = contacts.map (contact) -> contact.user_id
+			HttpController._sortContacts(contacts);
+			contacts = contacts.slice(0, limit);
+			const contact_ids = contacts.map(contact => contact.user_id);
 
-			res.status(200).send({
-				contact_ids: contact_ids
-			})
+			return res.status(200).send({
+				contact_ids
+			});
+		});
+	},
 	
-	_sortContacts: (contacts) ->
-		contacts.sort (a, b) ->
-			# Sort by decreasing count, descreasing timestamp.
-			# I.e. biggest count, and most recent at front.
-			if a.n > b.n
-				return -1
-			else if a.n < b.n
-				return 1
-			else
-				if a.ts > b.ts
-					return -1
-				else if a.ts < b.ts
-					return 1
-				else
-					return 0
+	_sortContacts(contacts) {
+		return contacts.sort(function(a, b) {
+			// Sort by decreasing count, descreasing timestamp.
+			// I.e. biggest count, and most recent at front.
+			if (a.n > b.n) {
+				return -1;
+			} else if (a.n < b.n) {
+				return 1;
+			} else {
+				if (a.ts > b.ts) {
+					return -1;
+				} else if (a.ts < b.ts) {
+					return 1;
+				} else {
+					return 0;
+				}
+			}
+		});
+	}
+});

+ 6 - 5
services/contacts/app/coffee/mongojs.js

@@ -1,7 +1,8 @@
-Settings = require "settings-sharelatex"
-mongojs = require "mongojs"
-db = mongojs(Settings.mongo.url, ["contacts"])
-module.exports =
-	db: db
+const Settings = require("settings-sharelatex");
+const mongojs = require("mongojs");
+const db = mongojs(Settings.mongo.url, ["contacts"]);
+module.exports = {
+	db,
 	ObjectId: mongojs.ObjectId
+};