Compare commits

...
3 Commits
Author SHA1 Message Date
Chris Troutner 2fca908c97 Merge pull request #46 from Permissionless-Software-Foundation/ct-unstable
feat(NSFW): Adding hook for handling NSFW flags from users
2022-09-13 11:53:03 -07:00
Chris Troutner 3aba1e061b feat(NSFW): Adding hook for handling NSFW flags from users 2022-09-13 11:50:14 -07:00
Chris Troutner c398942c95 temp mod to docker-compose.yml 2022-09-12 13:36:24 -07:00
4 changed files with 54 additions and 10 deletions
+8 -8
View File
@@ -70,10 +70,10 @@ services:
restart: always
bch-dex:
#build:
# context: ./bch-dex/
# dockerfile: Dockerfile
image: christroutner/bch-dex:v1.9.6
build:
context: ./bch-dex/
dockerfile: Dockerfile
#image: christroutner/bch-dex:v1.9.6
container_name: bch-dex
environment:
CONSUMER_URL: 'https://free-bch.fullstack.cash'
@@ -94,10 +94,10 @@ services:
restart: always
dex-ui:
#build:
# context: ./bch-dex-ui/
# dockerfile: Dockerfile
image: christroutner/bch-dex-ui:v1.6.6
build:
context: ./bch-dex-ui/
dockerfile: Dockerfile
#image: christroutner/bch-dex-ui:v1.6.6
container_name: dex-ui
environment:
SERVER: 'http://192.168.2.3'
+2
View File
@@ -28,6 +28,8 @@ const Offer = new mongoose.Schema({
globalTimestamp: { type: String },
localTimestamp: { type: String },
displayCategory: { type: String },
nsfw: { type: Boolean, default: false },
flags: { type: Array },
// SWaP Protocol Properties
lokadId: { type: String },
@@ -45,12 +45,23 @@ class P2WDBRESTControllerLib {
const counterOffer = ctx.request.body
await _this.useCases.offer.acceptCounterOffer(counterOffer)
//
} else if (dataType.includes('offer')) {
// Detect and handle new Offers
console.log('offer data detected')
const offerObj = ctx.request.body
await _this.useCases.offer.createOffer(offerObj)
//
} else if (dataType.includes('flag')) {
// Detect and handle data generated by users flagging NSFW Offers.
const flagData = ctx.request.body
console.log('Flag type data received: ', flagData)
// const p2wdbHash = flagData.p2wdbHash
await _this.useCases.offer.flagOffer(flagData)
} else {
console.log('Could not route P2WDB webhook data.')
}
+33 -2
View File
@@ -160,9 +160,12 @@ class OfferUseCases {
}
}
async listNftOffers (page = 0) {
async listNftOffers (page = 0, nsfw = false) {
try {
const data = await this.OfferModel.find({ displayCategory: { $ne: 'fungible' } })
const data = await this.OfferModel.find({
displayCategory: { $ne: 'fungible' },
nsfw
})
// Sort entries so newest entries show first.
.sort('-timestamp')
// Skip to the start of the selected page.
@@ -507,6 +510,34 @@ class OfferUseCases {
throw err
}
}
async flagOffer (flagData) {
console.log(`flagData: ${JSON.stringify(flagData, null, 2)}`)
const p2wdbHash = flagData.data.p2wdbHash
// Get the offer from the database.
const offer = await this.findOfferByHash(p2wdbHash)
console.log(`Flagging this offer: ${JSON.stringify(offer, null, 2)}`)
if (!offer) {
throw new Error(`Offer ${p2wdbHash} not found in the database.`)
}
// Add the raw flag data to the database model.
offer.flags.push(flagData)
// If flag count is 3 or more, mark the Offer as NSFW
const flagCnt = offer.flags.length
if (flagCnt >= 3) {
offer.nsfw = true
}
// Save the updated offer data to the database.
await offer.save()
return true
}
}
module.exports = OfferUseCases