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.matchedCount === 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