fme-twitter
Version:
Twitter module for aggregating twitter data
208 lines • 8.09 kB
JavaScript
"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