From 16dd0040002ba4a36649b8076ea2ddea902fc77c Mon Sep 17 00:00:00 2001 From: Daniel Lugo Date: Sat, 11 Jul 2020 12:57:16 -0400 Subject: [PATCH] initialize wall subgraph at sign up --- services/gunDB/Mediator/index.js | 1 + services/gunDB/contact-api/actions.js | 59 ++++++++++++++++++++++++++- 2 files changed, 59 insertions(+), 1 deletion(-) diff --git a/services/gunDB/Mediator/index.js b/services/gunDB/Mediator/index.js index 98bafe55..f8fc73ec 100644 --- a/services/gunDB/Mediator/index.js +++ b/services/gunDB/Mediator/index.js @@ -1303,6 +1303,7 @@ const register = async (alias, pass) => { await API.Actions.setDisplayName('anon' + pub.slice(0, 8), user) await API.Actions.generateHandshakeAddress() await API.Actions.generateOrderAddress(user) + await API.Actions.initWall() await API.Actions.setBio('A little bit about myself.', user) return pub }) diff --git a/services/gunDB/contact-api/actions.js b/services/gunDB/contact-api/actions.js index 1998d24a..2f490d5a 100644 --- a/services/gunDB/contact-api/actions.js +++ b/services/gunDB/contact-api/actions.js @@ -1502,6 +1502,62 @@ const unfollow = publicKey => }) }) +/** + * @throws {Error} + * @returns {Promise} + */ +const initWall = async () => { + const user = require('../Mediator').getUser() + + await new Promise((res, rej) => { + user + .get(Key.WALL) + .get(Key.NUM_OF_PAGES) + .put(1, ack => { + if (ack.err) { + rej(new Error(ack.err)) + } else { + res() + } + }) + }) + + await new Promise((res, rej) => { + user + .get(Key.WALL) + .get(Key.PAGES) + .get('0') + .get(Key.POSTS) + .put( + { + unused: null + }, + ack => { + if (ack.err) { + rej(new Error(ack.err)) + } else { + res() + } + } + ) + }) + + await new Promise((res, rej) => { + user + .get(Key.WALL) + .get(Key.PAGES) + .get('0') + .get(Key.COUNT) + .put(0, ack => { + if (ack.err) { + rej(new Error(ack.err)) + } else { + res() + } + }) + }) +} + module.exports = { __createOutgoingFeed, acceptRequest, @@ -1524,5 +1580,6 @@ module.exports = { createPost, deletePost, follow, - unfollow + unfollow, + initWall }