v0.0.4
This commit is contained in:
26
cloudfunctions/petDelete/index.js
Normal file
26
cloudfunctions/petDelete/index.js
Normal file
@@ -0,0 +1,26 @@
|
||||
const cloud = require('wx-server-sdk')
|
||||
|
||||
cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV })
|
||||
const db = cloud.database()
|
||||
|
||||
exports.main = async event => {
|
||||
const { OPENID } = cloud.getWXContext()
|
||||
if (!OPENID) throw new Error('no openid in wx context')
|
||||
if (!event.petId) throw new Error('petId is required')
|
||||
|
||||
const users = await db.collection('users').where({ openid: OPENID }).limit(1).get()
|
||||
if (!users.data.length) throw new Error('user not found')
|
||||
const ownerId = users.data[0]._id
|
||||
|
||||
let pet
|
||||
try {
|
||||
pet = await db.collection('pets').doc(event.petId).get()
|
||||
} catch (_) {
|
||||
return { ok: true } // already gone
|
||||
}
|
||||
if (!pet.data) return { ok: true }
|
||||
if (pet.data.ownerId !== ownerId) throw new Error('not allowed')
|
||||
|
||||
await db.collection('pets').doc(event.petId).remove()
|
||||
return { ok: true }
|
||||
}
|
||||
8
cloudfunctions/petDelete/package.json
Normal file
8
cloudfunctions/petDelete/package.json
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"name": "petDelete",
|
||||
"version": "1.0.0",
|
||||
"main": "index.js",
|
||||
"dependencies": {
|
||||
"wx-server-sdk": "latest"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user