UNPKG

fme-twitter

Version:

Twitter module for aggregating twitter data

208 lines 8.09 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); const fme_logger_1 = require("fme-logger"); var L = new fme_logger_1.Log("twitter-users"); L.setLevel("info"); class WriteResult { } class TwitterUserModel { constructor() { this.isBlocked = false; this.isImportant = false; this.postCount = 1; this.likes = 0; this.hates = 0; this.score = 50; this.followers = 0; this.follows = 0; this.tweets = 0; } } exports.TwitterUserModel = TwitterUserModel; class TwitterUsers { constructor(db) { this.create = (user) => { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { var newUser = new TwitterUserModel(); newUser.id = user.id; newUser.name = user.name; newUser.followers = user.followers_count; newUser.follows = user.friends_count; newUser.tweets = user.article_count; try { var rtn = yield this.collection.update({ id: user.id }, newUser, { upsert: true }); } catch (err) { L.error("create", err); reject(err); return; } resolve(newUser); })); }; this.updateUser = (user) => { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { try { } catch (err) { L.error("updateUser", err); reject(err); return; } resolve(); })); }; this.get = (id) => { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { try { var user = yield this.collection.find({ id: id }).toArray(); } catch (err) { L.error("get", err); reject(err); return; } if (!user) resolve(); else resolve(user[0]); })); }; this.getImportant = () => { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { try { // L.info("In get Important") this.users = yield this.collection.find({ isImportant: true }).toArray(); } catch (err) { L.error("getImportant", err); reject(err); return; } resolve(this.users); })); }; this.getBlocked = () => { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { try { this.users = yield this.collection.find({ isBlocked: true }).toArray(); } catch (err) { L.error("getBlocked", err); reject(err); return; } resolve(this.users.map((a) => { return a.id; })); })); }; this.remove = (user) => { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { try { var rtn = yield this.collection.remove({ id: user.id }); } catch (err) { L.error("remove", err); reject(err); return; } resolve(true); })); }; this.addImportant = (id) => { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { try { var rtn = yield this.collection.update({ id: id }, { $set: { isImportant: true } }, { upsert: true }); } catch (err) { L.error("addImportant", err); reject(err); return; } resolve(true); })); }; this.addBlock = (id) => { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { try { var rtn = yield this.collection.update({ id: id }, { $set: { isBlocked: true } }); } catch (err) { L.error("addBlock", err); reject(err); return; } resolve(true); })); }; this.removeBlock = (id) => { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { try { var rtn = yield this.collection.update({ id: id }, { $set: { isBlocked: false } }); } catch (err) { L.error("removeBlock", err); reject(err); return; } resolve(true); })); }; this.incLikes = (id) => { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { try { var rtn = yield this.collection.update({ id: id }, { $inc: { likes: 1 } }); } catch (err) { L.error("incLikes", err); reject(err); return; } resolve(true); })); }; this.incHates = (id) => { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { try { var rtn = yield this.collection.update({ id: id }, { $inc: { hates: 1 } }); } catch (err) { L.error("incHates", err); reject(err); return; } resolve(true); })); }; this.incPostCount = (twitterUser) => { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { try { var updateUser = yield this.collection.findOneAndUpdate({ id: twitterUser.id }, { $inc: { postCount: 1 } }); if (!updateUser.value) { var fmeUser = yield this.create(twitterUser); } else { fmeUser = updateUser.value; } } catch (err) { L.error("incPostCount", err); reject(err); return; } resolve(fmeUser); })); }; L.debug("contructor called", db.databaseName); this.collection = db.collection("twitter_users"); } } exports.TwitterUsers = TwitterUsers; //# sourceMappingURL=users.js.map