import { NextPage, GetServerSideProps } from 'next' import NotFound from 'pages/404' import { get } from '@utils/Query' import { Bots } from '@utils/Mongo' import { getYYMMDD } from '@utils/Tools' const Invite: NextPage = () => export const getServerSideProps: GetServerSideProps = async (ctx) => { const data = await get.bot.load(ctx.query.id as string) if(!data) return { props: {} } const record = await Bots.updateOne({ _id: data.id, 'inviteMetrix.day': getYYMMDD() }, { $inc: { 'inviteMetrix.$.count': 1 } }) if(record.n === 0) await Bots.findByIdAndUpdate(data.id, { $push: { inviteMetrix: { count: 1 } } }, { upsert: true }) ctx.res.statusCode = 307 ctx.res.setHeader('Location', data.url || `https://discordapp.com/oauth2/authorize?client_id=${data.id}&scope=bot&permissions=0`) return { props: {} } } export default Invite