mirror of
https://github.com/IT4Change/Ocelot-Social.git
synced 2025-12-13 07:45:56 +00:00
This commit takes all backend changes for signup and invite feature. I was working on these features and removed the generated mutations for type user along the way.
57 lines
1.8 KiB
JavaScript
57 lines
1.8 KiB
JavaScript
import { generateRsaKeyPair } from '../activitypub/security'
|
|
import { activityPub } from '../activitypub/ActivityPub'
|
|
import as from 'activitystrea.ms'
|
|
|
|
const debug = require('debug')('backend:schema')
|
|
|
|
export default {
|
|
Mutation: {
|
|
CreatePost: async (resolve, root, args, context, info) => {
|
|
args.activityId = activityPub.generateStatusId(context.user.slug)
|
|
args.objectId = activityPub.generateStatusId(context.user.slug)
|
|
|
|
const post = await resolve(root, args, context, info)
|
|
|
|
const { user: author } = context
|
|
const actorId = author.actorId
|
|
debug(`actorId = ${actorId}`)
|
|
const createActivity = await new Promise((resolve, reject) => {
|
|
as.create()
|
|
.id(`${actorId}/status/${args.activityId}`)
|
|
.actor(`${actorId}`)
|
|
.object(
|
|
as
|
|
.article()
|
|
.id(`${actorId}/status/${post.id}`)
|
|
.content(post.content)
|
|
.to('https://www.w3.org/ns/activitystreams#Public')
|
|
.publishedNow()
|
|
.attributedTo(`${actorId}`),
|
|
)
|
|
.prettyWrite((err, doc) => {
|
|
if (err) {
|
|
reject(err)
|
|
} else {
|
|
debug(doc)
|
|
const parsedDoc = JSON.parse(doc)
|
|
parsedDoc.send = true
|
|
resolve(JSON.stringify(parsedDoc))
|
|
}
|
|
})
|
|
})
|
|
try {
|
|
await activityPub.sendActivity(createActivity)
|
|
} catch (e) {
|
|
debug(`error sending post activity\n${e}`)
|
|
}
|
|
return post
|
|
},
|
|
SignupVerification: async (resolve, root, args, context, info) => {
|
|
const keys = generateRsaKeyPair()
|
|
Object.assign(args, keys)
|
|
args.actorId = `${activityPub.host}/activitypub/users/${args.slug}`
|
|
return resolve(root, args, context, info)
|
|
},
|
|
},
|
|
}
|