Remove unused subs (handled by RPC)

This commit is contained in:
Daniel Lugo 2021-04-29 18:43:26 -04:00
parent 19cac63baa
commit 575bb14d4e
4 changed files with 5 additions and 503 deletions

View file

@ -385,12 +385,8 @@ const authenticate = async (alias, pass, __user) => {
API.Jobs.onOrders(_user, gun, mySEA) API.Jobs.onOrders(_user, gun, mySEA)
API.Jobs.lastSeenNode(_user) API.Jobs.lastSeenNode(_user)
API.Events.onAvatar(() => {}, user)()
API.Events.onBio(() => {}, user)
API.Events.onBlacklist(() => {}, user)
API.Events.onChats(() => {})() API.Events.onChats(() => {})()
API.Events.onCurrentHandshakeAddress(() => {}, user)() API.Events.onCurrentHandshakeAddress(() => {}, user)()
API.Events.onDisplayName(() => {}, user)()
API.Events.onOutgoing(() => {})() API.Events.onOutgoing(() => {})()
API.Events.onSeedBackup(() => {}, user, mySEA) API.Events.onSeedBackup(() => {}, user, mySEA)
API.Events.onSimplerReceivedRequests(() => {})() API.Events.onSimplerReceivedRequests(() => {})()
@ -443,12 +439,9 @@ const authenticate = async (alias, pass, __user) => {
API.Jobs.onOrders(_user, gun, mySEA) API.Jobs.onOrders(_user, gun, mySEA)
API.Jobs.lastSeenNode(_user) API.Jobs.lastSeenNode(_user)
API.Events.onAvatar(() => {}, user)()
API.Events.onBio(() => {}, user)
API.Events.onBlacklist(() => {}, user)
API.Events.onChats(() => {})() API.Events.onChats(() => {})()
API.Events.onCurrentHandshakeAddress(() => {}, user)() API.Events.onCurrentHandshakeAddress(() => {}, user)()
API.Events.onDisplayName(() => {}, user)()
API.Events.onOutgoing(() => {})() API.Events.onOutgoing(() => {})()
API.Events.onSeedBackup(() => {}, user, mySEA) API.Events.onSeedBackup(() => {}, user, mySEA)
API.Events.onSimplerReceivedRequests(() => {})() API.Events.onSimplerReceivedRequests(() => {})()
@ -546,7 +539,6 @@ class Mediator {
this.socket.on('disconnect', this.onDisconnect) this.socket.on('disconnect', this.onDisconnect)
this.socket.on(Action.ACCEPT_REQUEST, this.acceptRequest) this.socket.on(Action.ACCEPT_REQUEST, this.acceptRequest)
this.socket.on(Action.BLACKLIST, this.blacklist)
this.socket.on( this.socket.on(
Action.GENERATE_NEW_HANDSHAKE_NODE, Action.GENERATE_NEW_HANDSHAKE_NODE,
this.generateHandshakeNode this.generateHandshakeNode
@ -559,26 +551,21 @@ class Mediator {
this.sendHRWithInitialMsg this.sendHRWithInitialMsg
) )
this.socket.on(Action.SEND_MESSAGE, this.sendMessage) this.socket.on(Action.SEND_MESSAGE, this.sendMessage)
this.socket.on(Action.SET_AVATAR, this.setAvatar)
this.socket.on(Action.SET_DISPLAY_NAME, this.setDisplayName)
this.socket.on(Action.SEND_PAYMENT, this.sendPayment) this.socket.on(Action.SEND_PAYMENT, this.sendPayment)
this.socket.on(Action.SET_BIO, this.setBio)
this.socket.on(Action.DISCONNECT, this.disconnect) this.socket.on(Action.DISCONNECT, this.disconnect)
this.socket.on(Event.ON_AVATAR, this.onAvatar)
this.socket.on(Event.ON_BLACKLIST, this.onBlacklist)
this.socket.on(Event.ON_CHATS, this.onChats) this.socket.on(Event.ON_CHATS, this.onChats)
this.socket.on(Event.ON_DISPLAY_NAME, this.onDisplayName)
this.socket.on(Event.ON_HANDSHAKE_ADDRESS, this.onHandshakeAddress) this.socket.on(Event.ON_HANDSHAKE_ADDRESS, this.onHandshakeAddress)
this.socket.on(Event.ON_RECEIVED_REQUESTS, this.onReceivedRequests) this.socket.on(Event.ON_RECEIVED_REQUESTS, this.onReceivedRequests)
this.socket.on(Event.ON_SENT_REQUESTS, this.onSentRequests) this.socket.on(Event.ON_SENT_REQUESTS, this.onSentRequests)
this.socket.on(Event.ON_BIO, this.onBio)
this.socket.on(Event.ON_SEED_BACKUP, this.onSeedBackup) this.socket.on(Event.ON_SEED_BACKUP, this.onSeedBackup)
this.socket.on(Constants.Misc.IS_GUN_AUTH, this.isGunAuth) this.socket.on(Constants.Misc.IS_GUN_AUTH, this.isGunAuth)
this.socket.on(Action.SET_LAST_SEEN_APP, this.setLastSeenApp)
Object.values(Action).forEach(actionConstant => Object.values(Action).forEach(actionConstant =>
this.socket.on(actionConstant, this.setLastSeenApp) this.socket.on(actionConstant, this.setLastSeenApp)
) )
@ -665,32 +652,6 @@ class Mediator {
} }
} }
/**
* @param {Readonly<{ publicKey: string , token: string }>} body
*/
blacklist = async body => {
try {
const { publicKey, token } = body
await throwOnInvalidToken(token)
await API.Actions.blacklist(publicKey, user)
this.socket.emit(Action.BLACKLIST, {
ok: true,
msg: null,
origBody: body
})
} catch (err) {
logger.info(err)
this.socket.emit(Action.BLACKLIST, {
ok: false,
msg: err.message,
origBody: body
})
}
}
onDisconnect = () => { onDisconnect = () => {
this.connected = false this.connected = false
} }
@ -919,124 +880,8 @@ class Mediator {
} }
} }
/**
* @param {Readonly<{ avatar: string|null , token: string }>} body
*/
setAvatar = async body => {
try {
const { avatar, token } = body
await throwOnInvalidToken(token)
await API.Actions.setAvatar(avatar, user)
this.socket.emit(Action.SET_AVATAR, {
ok: true,
msg: null,
origBody: body
})
} catch (err) {
logger.info(err)
this.socket.emit(Action.SET_AVATAR, {
ok: false,
msg: err.message,
origBody: body
})
}
}
/**
* @param {Readonly<{ displayName: string , token: string }>} body
*/
setDisplayName = async body => {
try {
const { displayName, token } = body
await throwOnInvalidToken(token)
await API.Actions.setDisplayName(displayName, user)
this.socket.emit(Action.SET_DISPLAY_NAME, {
ok: true,
msg: null,
origBody: body
})
} catch (err) {
logger.info(err)
this.socket.emit(Action.SET_DISPLAY_NAME, {
ok: false,
msg: err.message,
origBody: body
})
}
}
////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////
/**
* @param {Readonly<{ token: string }>} body
*/
onAvatar = async body => {
try {
const { token } = body
await throwOnInvalidToken(token)
API.Events.onAvatar(avatar => {
if (Config.SHOW_LOG) {
logger.info('---avatar---')
logger.info(avatar || 'null')
logger.info('-----------------------')
}
this.socket.emit(Event.ON_AVATAR, {
msg: avatar,
ok: true,
origBody: body
})
}, user)
} catch (err) {
logger.info(err)
this.socket.emit(Event.ON_AVATAR, {
ok: false,
msg: err.message,
origBody: body
})
}
}
/**
* @param {Readonly<{ token: string }>} body
*/
onBlacklist = async body => {
try {
const { token } = body
await throwOnInvalidToken(token)
API.Events.onBlacklist(blacklist => {
if (Config.SHOW_LOG) {
logger.info('---blacklist---')
logger.info(blacklist.join(','))
logger.info('-----------------------')
}
this.socket.emit(Event.ON_BLACKLIST, {
msg: blacklist,
ok: true,
origBody: body
})
}, user)
} catch (err) {
logger.info(err)
this.socket.emit(Event.ON_BLACKLIST, {
ok: false,
msg: err.message,
origBody: body
})
}
}
/** /**
* @param {Readonly<{ token: string }>} body * @param {Readonly<{ token: string }>} body
*/ */
@ -1071,38 +916,6 @@ class Mediator {
} }
} }
/**
* @param {Readonly<{ token: string }>} body
*/
onDisplayName = async body => {
try {
const { token } = body
await throwOnInvalidToken(token)
API.Events.onDisplayName(displayName => {
if (Config.SHOW_LOG) {
logger.info('---displayName---')
logger.info(displayName || 'null or empty string')
logger.info('-----------------------')
}
this.socket.emit(Event.ON_DISPLAY_NAME, {
msg: displayName,
ok: true,
origBody: body
})
}, user)
} catch (err) {
logger.info(err)
this.socket.emit(Event.ON_DISPLAY_NAME, {
ok: false,
msg: err.message,
origBody: body
})
}
}
/** /**
* @param {Readonly<{ token: string }>} body * @param {Readonly<{ token: string }>} body
*/ */
@ -1198,58 +1011,6 @@ class Mediator {
} }
} }
/**
* @param {Readonly<{ token: string }>} body
*/
onBio = async body => {
try {
const { token } = body
await throwOnInvalidToken(token)
API.Events.onBio(bio => {
this.socket.emit(Event.ON_BIO, {
msg: bio,
ok: true,
origBody: body
})
}, user)
} catch (err) {
logger.info(err)
this.socket.emit(Event.ON_BIO, {
ok: false,
msg: err.message,
origBody: body
})
}
}
/**
* @param {Readonly<{ bio: string|null , token: string }>} body
*/
setBio = async body => {
try {
const { bio, token } = body
await throwOnInvalidToken(token)
await API.Actions.setBio(bio, user)
this.socket.emit(Action.SET_BIO, {
ok: true,
msg: null,
origBody: body
})
} catch (err) {
logger.info(err)
this.socket.emit(Action.SET_BIO, {
ok: false,
msg: err.message,
origBody: body
})
}
}
/** /**
* @param {Readonly<{ token: string }>} body * @param {Readonly<{ token: string }>} body
*/ */

View file

@ -80,85 +80,6 @@ const __onUserToIncoming = (cb, user, SEA) => {
}) })
} }
/** @type {Set<(av: string|null) => void>} */
const avatarListeners = new Set()
/** @type {string|null} */
let currentAvatar = null
const getAvatar = () => currentAvatar
/** @param {string|null} av */
const setAvatar = av => {
currentAvatar = av
avatarListeners.forEach(l => l(currentAvatar))
}
let avatarSubbed = false
/**
* @param {(avatar: string|null) => void} cb
* @param {UserGUNNode} user Pass only for testing purposes.
* @throws {Error} If user hasn't been auth.
* @returns {() => void}
*/
const onAvatar = (cb, user) => {
if (!user.is) {
throw new Error(ErrorCode.NOT_AUTH)
}
avatarListeners.add(cb)
cb(currentAvatar)
if (!avatarSubbed) {
avatarSubbed = true
user
.get(Key.PROFILE_BINARY)
.get(Key.AVATAR)
.on(avatar => {
if (typeof avatar === 'string' || avatar === null) {
setAvatar(avatar)
}
})
}
return () => {
avatarListeners.delete(cb)
}
}
/**
* @param {(blacklist: string[]) => void} cb
* @param {UserGUNNode} user
* @returns {void}
*/
const onBlacklist = (cb, user) => {
/** @type {string[]} */
const blacklist = []
if (!user.is) {
throw new Error(ErrorCode.NOT_AUTH)
}
const callb = debounce(cb, DEBOUNCE_WAIT_TIME)
// Initial value if no items are in blacklist in gun
callb(blacklist)
user
.get(Key.BLACKLIST)
.map()
.on(publicKey => {
if (typeof publicKey === 'string' && publicKey.length > 0) {
blacklist.push(publicKey)
callb(blacklist)
} else {
logger.warn('Invalid public key received for blacklist')
}
})
}
/** @type {Set<(addr: string|null) => void>} */ /** @type {Set<(addr: string|null) => void>} */
const addressListeners = new Set() const addressListeners = new Set()
@ -210,54 +131,6 @@ const onCurrentHandshakeAddress = (cb, user) => {
} }
} }
/** @type {Set<(dn: string|null) => void>} */
const dnListeners = new Set()
/** @type {string|null} */
let currentDn = null
const getDisplayName = () => currentDn
/** @param {string|null} dn */
const setDn = dn => {
currentDn = dn
dnListeners.forEach(l => l(currentDn))
}
let dnSubbed = false
/**
* @param {(displayName: string|null) => void} cb
* @param {UserGUNNode} user Pass only for testing purposes.
* @throws {Error} If user hasn't been auth.
* @returns {() => void}
*/
const onDisplayName = (cb, user) => {
if (!user.is) {
throw new Error(ErrorCode.NOT_AUTH)
}
cb(currentDn)
dnListeners.add(cb)
if (!dnSubbed) {
dnSubbed = true
user
.get(Key.PROFILE)
.get(Key.DISPLAY_NAME)
.on(displayName => {
if (typeof displayName === 'string' || displayName === null) {
setDn(displayName)
}
})
}
return () => {
dnListeners.delete(cb)
}
}
/** /**
* @param {(messages: Record<string, Message>) => void} cb * @param {(messages: Record<string, Message>) => void} cb
* @param {string} userPK Public key of the user from whom the incoming * @param {string} userPK Public key of the user from whom the incoming
@ -543,32 +416,6 @@ const onChats = cb => {
} }
} }
/** @type {string|null} */
let currentBio = null
/**
* @param {(bio: string|null) => void} cb
* @param {UserGUNNode} user Pass only for testing purposes.
* @throws {Error} If user hasn't been auth.
* @returns {void}outgoingsListeners.forEach()
*/
const onBio = (cb, user) => {
if (!user.is) {
throw new Error(ErrorCode.NOT_AUTH)
}
const callb = debounce(cb, DEBOUNCE_WAIT_TIME)
// Initial value if avvatar is undefined in gun
callb(currentBio)
user.get(Key.BIO).on(bio => {
if (typeof bio === 'string' || bio === null) {
currentBio = bio
callb(bio)
}
})
}
/** @type {string|null} */ /** @type {string|null} */
let currentSeedBackup = null let currentSeedBackup = null
@ -599,10 +446,7 @@ const onSeedBackup = (cb, user, SEA) => {
module.exports = { module.exports = {
__onUserToIncoming, __onUserToIncoming,
onAvatar,
onBlacklist,
onCurrentHandshakeAddress, onCurrentHandshakeAddress,
onDisplayName,
onIncomingMessages, onIncomingMessages,
onOutgoing, onOutgoing,
getCurrentOutgoings, getCurrentOutgoings,
@ -610,11 +454,8 @@ module.exports = {
onSimplerSentRequests: require('./onSentReqs').onSentReqs, onSimplerSentRequests: require('./onSentReqs').onSentReqs,
getCurrentSentReqs: require('./onSentReqs').getCurrentSentReqs, getCurrentSentReqs: require('./onSentReqs').getCurrentSentReqs,
getCurrentReceivedReqs: require('./onReceivedReqs').getReceivedReqs, getCurrentReceivedReqs: require('./onReceivedReqs').getReceivedReqs,
onBio,
onSeedBackup, onSeedBackup,
onChats, onChats,
getAvatar,
getDisplayName,
getHandshakeAddress, getHandshakeAddress,
getChats getChats
} }

View file

@ -113,8 +113,6 @@ const onSentReqs = cb => {
Streams.onStoredReqs(react) Streams.onStoredReqs(react)
Streams.onLastSentReqIDs(react) Streams.onLastSentReqIDs(react)
Streams.onPubToFeed(react) Streams.onPubToFeed(react)
Streams.onAvatar(react)
Streams.onDisplayName(react)
subbed = true subbed = true
} }

View file

@ -3,99 +3,6 @@ const { Schema, Utils: CommonUtils } = require('shock-common')
const Key = require('../key') const Key = require('../key')
const Utils = require('../utils') const Utils = require('../utils')
/**
* @typedef {Record<string, string|null|undefined>} Avatars
* @typedef {(avatars: Avatars) => void} AvatarListener
*/
/** @type {Avatars} */
const pubToAvatar = {}
const getPubToAvatar = () => pubToAvatar
/** @type {Set<AvatarListener>} */
const avatarListeners = new Set()
const notifyAvatarListeners = () => {
avatarListeners.forEach(l => l(pubToAvatar))
}
/** @type {Set<string>} */
const pubsWithAvatarListeners = new Set()
/**
* @param {AvatarListener} cb
* @param {string=} pub
*/
const onAvatar = (cb, pub) => {
avatarListeners.add(cb)
cb(pubToAvatar)
if (pub && pubsWithAvatarListeners.add(pub)) {
require('../../Mediator')
.getGun()
.user(pub)
.get(Key.PROFILE_BINARY)
.get(Key.AVATAR)
.on(av => {
if (typeof av === 'string' || av === null) {
pubToAvatar[pub] = av || null
} else {
pubToAvatar[pub] = null
}
notifyAvatarListeners()
})
}
return () => {
avatarListeners.delete(cb)
}
}
/**
* @typedef {Record<string, string|null|undefined>} DisplayNames
* @typedef {(avatars: Avatars) => void} DisplayNameListener
*/
/** @type {DisplayNames} */
const pubToDisplayName = {}
const getPubToDn = () => pubToDisplayName
/** @type {Set<DisplayNameListener>} */
const displayNameListeners = new Set()
const notifyDisplayNameListeners = () => {
displayNameListeners.forEach(l => l(pubToDisplayName))
}
/** @type {Set<string>} */
const pubsWithDisplayNameListeners = new Set()
/**
* @param {DisplayNameListener} cb
* @param {string=} pub
*/
const onDisplayName = (cb, pub) => {
displayNameListeners.add(cb)
cb(pubToDisplayName)
if (pub && pubsWithDisplayNameListeners.add(pub)) {
require('../../Mediator')
.getGun()
.user(pub)
.get(Key.PROFILE)
.get(Key.DISPLAY_NAME)
.on(dn => {
if (typeof dn === 'string' || dn === null) {
pubToDisplayName[pub] = dn || null
} else {
pubToDisplayName[pub] = null
}
notifyDisplayNameListeners()
})
}
return () => {
displayNameListeners.delete(cb)
}
}
/** /**
* @typedef {import('shock-common').Schema.StoredRequest} StoredRequest * @typedef {import('shock-common').Schema.StoredRequest} StoredRequest
@ -171,11 +78,6 @@ const onStoredReqs = cb => {
} }
module.exports = { module.exports = {
onAvatar,
getPubToAvatar,
onDisplayName,
getPubToDn,
onPubToIncoming: require('./pubToIncoming').onPubToIncoming, onPubToIncoming: require('./pubToIncoming').onPubToIncoming,
getPubToIncoming: require('./pubToIncoming').getPubToIncoming, getPubToIncoming: require('./pubToIncoming').getPubToIncoming,
setPubToIncoming: require('./pubToIncoming').setPubToIncoming, setPubToIncoming: require('./pubToIncoming').setPubToIncoming,