mirror of
https://github.com/mdanics/fluttergram.git
synced 2025-05-23 08:56:44 +08:00
fixed imports + added new files to git
This commit is contained in:
59
functions/lib/getFeed.js
Normal file
59
functions/lib/getFeed.js
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
"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 admin = require("firebase-admin");
|
||||||
|
exports.getFeedModule = function (req, res) {
|
||||||
|
const uid = String(req.query.uid);
|
||||||
|
function compileFeedPost() {
|
||||||
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
|
const following = yield getFollowing(uid, res);
|
||||||
|
let listOfPosts = yield getAllPosts(following, res);
|
||||||
|
listOfPosts = [].concat.apply([], listOfPosts); // flattens list
|
||||||
|
res.send(listOfPosts);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
compileFeedPost().then().catch();
|
||||||
|
};
|
||||||
|
function getAllPosts(following, res) {
|
||||||
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
|
let listOfPosts = [];
|
||||||
|
for (let user in following) {
|
||||||
|
listOfPosts.push(yield getUserPosts(following[user], res));
|
||||||
|
}
|
||||||
|
return listOfPosts;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
function getUserPosts(userId, res) {
|
||||||
|
const posts = admin.firestore().collection("insta_posts").where("ownerId", "==", userId).orderBy("timestamp");
|
||||||
|
return posts.get()
|
||||||
|
.then(function (querySnapshot) {
|
||||||
|
let listOfPosts = [];
|
||||||
|
querySnapshot.forEach(function (doc) {
|
||||||
|
listOfPosts.push(doc.data());
|
||||||
|
});
|
||||||
|
return listOfPosts;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
function getFollowing(uid, res) {
|
||||||
|
const doc = admin.firestore().doc(`insta_users/${uid}`);
|
||||||
|
return doc.get().then(snapshot => {
|
||||||
|
const followings = snapshot.data().following;
|
||||||
|
let following_list = [];
|
||||||
|
for (const following in followings) {
|
||||||
|
if (followings[following] === true) {
|
||||||
|
following_list.push(following);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return following_list;
|
||||||
|
}).catch(error => {
|
||||||
|
res.status(500).send(error);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
//# sourceMappingURL=getFeed.js.map
|
1
functions/lib/getFeed.js.map
Normal file
1
functions/lib/getFeed.js.map
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"getFeed.js","sourceRoot":"","sources":["../src/getFeed.ts"],"names":[],"mappings":";;;;;;;;;;AACA,wCAAwC;AAG3B,QAAA,aAAa,GAAG,UAAS,GAAG,EAAE,GAAG;IAC1C,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAElC;;YACE,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,GAAG,EAAE,GAAG,CAAQ,CAAC;YAEtD,IAAI,WAAW,GAAG,MAAM,WAAW,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;YAEpD,WAAW,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC,gBAAgB;YAEhE,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACxB,CAAC;KAAA;IAED,eAAe,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;AACrC,CAAC,CAAA;AAED,qBAA2B,SAAS,EAAE,GAAG;;QACrC,IAAI,WAAW,GAAG,EAAE,CAAC;QAErB,KAAK,IAAI,IAAI,IAAI,SAAS,EAAC;YACvB,WAAW,CAAC,IAAI,CAAE,MAAM,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;SAC/D;QACD,OAAO,WAAW,CAAC;IACvB,CAAC;CAAA;AAED,sBAAsB,MAAM,EAAE,GAAG;IAC7B,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;IAE7G,OAAO,KAAK,CAAC,GAAG,EAAE;SACjB,IAAI,CAAC,UAAS,aAAa;QACxB,IAAI,WAAW,GAAG,EAAE,CAAC;QAErB,aAAa,CAAC,OAAO,CAAC,UAAS,GAAG;YAC9B,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,OAAO,WAAW,CAAC;IACvB,CAAC,CAAC,CAAA;AACN,CAAC;AAGD,sBAAsB,GAAG,EAAE,GAAG;IAC1B,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,eAAe,GAAG,EAAE,CAAC,CAAA;IACvD,OAAO,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;QAC/B,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC;QAE7C,IAAI,cAAc,GAAG,EAAE,CAAC;QAExB,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;YAClC,IAAI,UAAU,CAAC,SAAS,CAAC,KAAK,IAAI,EAAC;gBACjC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aAChC;SACF;QACD,OAAO,cAAc,CAAC;IAC1B,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;QACb,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC7B,CAAC,CAAC,CAAA;AACN,CAAC"}
|
@ -10,14 +10,14 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
const functions = require("firebase-functions");
|
const functions = require("firebase-functions");
|
||||||
const admin = require("firebase-admin");
|
const admin = require("firebase-admin");
|
||||||
const notificationHandlerModule = require('./notificationHandler');
|
const notificationHandler_1 = require("./notificationHandler");
|
||||||
const getFeedModule = require('./getFeed');
|
const getFeed_1 = require("./getFeed");
|
||||||
admin.initializeApp();
|
admin.initializeApp();
|
||||||
exports.notificationHandler = functions.firestore.document("/insta_a_feed/{userId}/items/{activityFeedItem}")
|
exports.notificationHandler = functions.firestore.document("/insta_a_feed/{userId}/items/{activityFeedItem}")
|
||||||
.onCreate((snapshot, context) => __awaiter(this, void 0, void 0, function* () {
|
.onCreate((snapshot, context) => __awaiter(this, void 0, void 0, function* () {
|
||||||
notificationHandlerModule.notificationHandler(snapshot, context);
|
yield notificationHandler_1.notificationHandlerModule(snapshot, context);
|
||||||
}));
|
}));
|
||||||
exports.getFeed = functions.https.onRequest((req, res) => {
|
exports.getFeed = functions.https.onRequest((req, res) => {
|
||||||
exports.getFeed(req, res);
|
getFeed_1.getFeedModule(req, res);
|
||||||
});
|
});
|
||||||
//# sourceMappingURL=index.js.map
|
//# sourceMappingURL=index.js.map
|
@ -1 +1 @@
|
|||||||
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,gDAAgD;AAChD,wCAAwC;AACxC,MAAM,yBAAyB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;AACnE,MAAM,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;AAE3C,KAAK,CAAC,aAAa,EAAE,CAAC;AAET,QAAA,mBAAmB,GAAG,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,iDAAiD,CAAC;KAC7G,QAAQ,CAAC,CAAO,QAAQ,EAAE,OAAO,EAAE,EAAE;IACnC,yBAAyB,CAAC,mBAAmB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AACpE,CAAC,CAAA,CAAC,CAAC;AAGM,QAAA,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;IAC5D,eAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AACpB,CAAC,CAAC,CAAA"}
|
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,gDAAgD;AAChD,wCAAwC;AACxC,+DAAiE;AACjE,uCAAyC;AACzC,KAAK,CAAC,aAAa,EAAE,CAAC;AAET,QAAA,mBAAmB,GAAG,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,iDAAiD,CAAC;KAC7G,QAAQ,CAAC,CAAO,QAAQ,EAAE,OAAO,EAAE,EAAE;IACnC,MAAM,+CAAyB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AACtD,CAAC,CAAA,CAAC,CAAC;AAGM,QAAA,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;IAC5D,uBAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC1B,CAAC,CAAC,CAAA"}
|
56
functions/lib/notificationHandler.js
Normal file
56
functions/lib/notificationHandler.js
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
"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 admin = require("firebase-admin");
|
||||||
|
exports.notificationHandlerModule = function (snapshot, context) {
|
||||||
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
|
console.log(snapshot.data());
|
||||||
|
const ownerDoc = admin.firestore().doc("insta_users/" + context.params.userId);
|
||||||
|
const ownerData = yield ownerDoc.get();
|
||||||
|
const androidNotificationToken = ownerData.data()["androidNotificationToken"];
|
||||||
|
if (androidNotificationToken) {
|
||||||
|
sendNotification(androidNotificationToken, snapshot.data());
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
console.log("No token for User, not sending a notification");
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
});
|
||||||
|
};
|
||||||
|
function sendNotification(androidNotificationToken, activityItem) {
|
||||||
|
let title;
|
||||||
|
let body = "";
|
||||||
|
if (activityItem['type'] === "comment") {
|
||||||
|
title = "New Comment";
|
||||||
|
body = activityItem['username'] + " commented on your post: " + activityItem["commentData"];
|
||||||
|
}
|
||||||
|
else if (activityItem["type"] === "like") {
|
||||||
|
title = activityItem['username'] + " liked your post";
|
||||||
|
}
|
||||||
|
else if (activityItem["type"] === "follow") {
|
||||||
|
title = activityItem['username'] + " started following you";
|
||||||
|
}
|
||||||
|
const message = {
|
||||||
|
notification: {
|
||||||
|
title: title,
|
||||||
|
body: body
|
||||||
|
},
|
||||||
|
token: androidNotificationToken
|
||||||
|
};
|
||||||
|
admin.messaging().send(message)
|
||||||
|
.then((response) => {
|
||||||
|
// Response is a message ID string.
|
||||||
|
console.log('Successfully sent message:', response);
|
||||||
|
})
|
||||||
|
.catch((error) => {
|
||||||
|
console.log('Error sending message:', error);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
//# sourceMappingURL=notificationHandler.js.map
|
1
functions/lib/notificationHandler.js.map
Normal file
1
functions/lib/notificationHandler.js.map
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"notificationHandler.js","sourceRoot":"","sources":["../src/notificationHandler.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,wCAAwC;AAG3B,QAAA,yBAAyB,GAAG,UAAgB,QAAQ,EAAE,OAAO;;QACpE,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;QAE5B,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QAC9E,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,GAAG,EAAE,CAAA;QAItC,MAAM,wBAAwB,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,0BAA0B,CAAC,CAAC;QAC9E,IAAI,wBAAwB,EAAE;YAC3B,gBAAgB,CAAC,wBAAwB,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;SAG9D;aAAM;YACL,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;SAC9D;QAED,OAAO,CAAC,CAAC;IACX,CAAC;CAAA,CAAC;AAEN,0BAA0B,wBAAgC,EAAE,YAA4C;IAEpG,IAAI,KAAa,CAAC;IAClB,IAAI,IAAI,GAAW,EAAE,CAAC;IAEtB,IAAI,YAAY,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE;QACtC,KAAK,GAAG,aAAa,CAAA;QACrB,IAAI,GAAG,YAAY,CAAC,UAAU,CAAC,GAAG,2BAA2B,GAAG,YAAY,CAAC,aAAa,CAAC,CAAA;KAC5F;SAAM,IAAI,YAAY,CAAC,MAAM,CAAC,KAAK,MAAM,EAAE;QAC1C,KAAK,GAAG,YAAY,CAAC,UAAU,CAAC,GAAG,kBAAkB,CAAA;KACtD;SAAM,IAAI,YAAY,CAAC,MAAM,CAAC,KAAK,QAAQ,EAAC;QAC3C,KAAK,GAAG,YAAY,CAAC,UAAU,CAAC,GAAG,wBAAwB,CAAA;KAC5D;IAED,MAAM,OAAO,GAAG;QACd,YAAY,EAAE;YACZ,KAAK,EAAE,KAAK;YACZ,IAAI,EAAE,IAAI;SACX;QACD,KAAK,EAAE,wBAAwB;KAChC,CAAA;IAED,KAAK,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;SAC9B,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;QACjB,mCAAmC;QACnC,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE,QAAQ,CAAC,CAAC;IACtD,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACf,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACL,CAAC"}
|
@ -2,7 +2,7 @@ import * as functions from 'firebase-functions';
|
|||||||
import * as admin from 'firebase-admin';
|
import * as admin from 'firebase-admin';
|
||||||
|
|
||||||
|
|
||||||
export const getFeed = function(req, res) {
|
export const getFeedModule = function(req, res) {
|
||||||
const uid = String(req.query.uid);
|
const uid = String(req.query.uid);
|
||||||
|
|
||||||
async function compileFeedPost() {
|
async function compileFeedPost() {
|
||||||
|
@ -1,16 +1,15 @@
|
|||||||
import * as functions from 'firebase-functions';
|
import * as functions from 'firebase-functions';
|
||||||
import * as admin from 'firebase-admin';
|
import * as admin from 'firebase-admin';
|
||||||
const notificationHandlerModule = require('./notificationHandler');
|
import { notificationHandlerModule } from "./notificationHandler"
|
||||||
const getFeedModule = require('./getFeed');
|
import { getFeedModule } from "./getFeed"
|
||||||
|
|
||||||
admin.initializeApp();
|
admin.initializeApp();
|
||||||
|
|
||||||
export const notificationHandler = functions.firestore.document("/insta_a_feed/{userId}/items/{activityFeedItem}")
|
export const notificationHandler = functions.firestore.document("/insta_a_feed/{userId}/items/{activityFeedItem}")
|
||||||
.onCreate(async (snapshot, context) => {
|
.onCreate(async (snapshot, context) => {
|
||||||
notificationHandlerModule.notificationHandler(snapshot, context);
|
await notificationHandlerModule(snapshot, context);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
export const getFeed = functions.https.onRequest((req, res) => {
|
export const getFeed = functions.https.onRequest((req, res) => {
|
||||||
getFeed(req, res);
|
getFeedModule(req, res);
|
||||||
})
|
})
|
@ -1,7 +1,7 @@
|
|||||||
import * as admin from 'firebase-admin';
|
import * as admin from 'firebase-admin';
|
||||||
import { DocumentSnapshot } from 'firebase-functions/lib/providers/firestore';
|
import { DocumentSnapshot } from 'firebase-functions/lib/providers/firestore';
|
||||||
|
|
||||||
export const notificationHandler = async function (snapshot, context) {
|
export const notificationHandlerModule = async function (snapshot, context) {
|
||||||
console.log(snapshot.data())
|
console.log(snapshot.data())
|
||||||
|
|
||||||
const ownerDoc = admin.firestore().doc("insta_users/" + context.params.userId)
|
const ownerDoc = admin.firestore().doc("insta_users/" + context.params.userId)
|
||||||
|
Reference in New Issue
Block a user