feat: Added verify account route, closes #28
This commit is contained in:
parent
11a59d39af
commit
d74a51db7f
24
webv2/server/api/minecraft/verifyaccount.get.ts
Normal file
24
webv2/server/api/minecraft/verifyaccount.get.ts
Normal file
@ -0,0 +1,24 @@
|
||||
export default defineEventHandler(async (event) => {
|
||||
const { uuid } = getQuery(event)
|
||||
|
||||
let whitelistDoc
|
||||
try {
|
||||
whitelistDoc = await WhitelistModel.findOneAndUpdate({ uuid }, {
|
||||
$set: {
|
||||
uuid
|
||||
},
|
||||
$setOnInsert: {
|
||||
code: generateCode(),
|
||||
connected: false
|
||||
}
|
||||
}, { returnDocument: 'after', upsert: true })
|
||||
|
||||
return whitelistDoc
|
||||
} catch (e: any) {
|
||||
throw createError({ statusCode: 500, statusMessage: 'Failed to update/insert whitelist document' })
|
||||
}
|
||||
})
|
||||
|
||||
const generateCode = () => {
|
||||
return Math.floor(100000 + Math.random() * 900000)
|
||||
}
|
@ -21,4 +21,11 @@ const userSchema = new Schema({
|
||||
]
|
||||
})
|
||||
|
||||
const whitelistSchema = new Schema({
|
||||
uuid: { type: String, required: true, unique: true },
|
||||
connected: { type: Boolean, required: true, default: false },
|
||||
code: { type: String, required: true, unique: true, length: 6 }
|
||||
})
|
||||
|
||||
export const UserModel = model<IUser>('User', userSchema)
|
||||
export const WhitelistModel = model<IWhitelist>('Whitelist', whitelistSchema)
|
||||
|
7
webv2/types/global.d.ts
vendored
7
webv2/types/global.d.ts
vendored
@ -21,4 +21,11 @@ declare global {
|
||||
teamId: string,
|
||||
accessToken?: string
|
||||
}
|
||||
|
||||
interface IWhitelist {
|
||||
_id: string,
|
||||
uuid: string,
|
||||
connected: boolean,
|
||||
code: string
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user