change strike layout and add outlawed option
	
		
			
	
		
	
	
		
	
		
			All checks were successful
		
		
	
	
		
			
				
	
				delpoy / build-and-deploy (push) Successful in 1m21s
				
			
		
		
	
	
				
					
				
			
		
			All checks were successful
		
		
	
	delpoy / build-and-deploy (push) Successful in 1m21s
				
			This commit is contained in:
		| @@ -1,6 +1,7 @@ | ||||
| import type { RequestHandler } from '@sveltejs/kit'; | ||||
| import { Strike, User } from '$lib/server/database'; | ||||
| import { Report, sequelize, StrikePunishment, StrikeReason, User } from '$lib/server/database'; | ||||
| import { env } from '$env/dynamic/private'; | ||||
| import { Op } from 'sequelize'; | ||||
|  | ||||
| export const GET = (async ({ url }) => { | ||||
| 	if (env.REPORT_SECRET && url.searchParams.get('secret') !== env.REPORT_SECRET) | ||||
| @@ -12,7 +13,28 @@ export const GET = (async ({ url }) => { | ||||
| 	const user = await User.findOne({ where: { uuid: uuid } }); | ||||
| 	if (user == null) return new Response(null, { status: 400 }); | ||||
|  | ||||
| 	const strike = await Strike.findOne({ where: { user_id: user.id } }); | ||||
| 	const query = (await Report.findOne({ | ||||
| 		where: { reported_id: user.id }, | ||||
| 		attributes: [ | ||||
| 			[sequelize.fn('SUM', sequelize.col('strike_reason.weight')), 'weight'], | ||||
| 			'striked_at' | ||||
| 		], | ||||
| 		include: { model: StrikeReason, as: 'strike_reason' } | ||||
| 	})) as { dataValues: { weight: number; striked_at: Date } } | null; | ||||
| 	const ban_time = ( | ||||
| 		await StrikePunishment.findOne({ | ||||
| 			attributes: ['punishment_in_seconds'], | ||||
| 			where: { type: ['ban'], weight: { [Op.lte]: query?.dataValues.weight } }, | ||||
| 			order: [['weight', 'DESC']] | ||||
| 		}) | ||||
| 	)?.punishment_in_seconds; | ||||
| 	const outlawed_time = ( | ||||
| 		await StrikePunishment.findOne({ | ||||
| 			attributes: ['punishment_in_seconds'], | ||||
| 			where: { type: ['outlawed'], weight: { [Op.lte]: query?.dataValues.weight } }, | ||||
| 			order: [['weight', 'DESC']] | ||||
| 		}) | ||||
| 	)?.punishment_in_seconds; | ||||
|  | ||||
| 	return new Response( | ||||
| 		JSON.stringify({ | ||||
| @@ -20,9 +42,14 @@ export const GET = (async ({ url }) => { | ||||
| 			username: user.username, | ||||
| 			firstname: user.firstname, | ||||
| 			lastname: user.lastname, | ||||
| 			banned: | ||||
| 				new Date(new Date(Date.now()).toUTCString()) < | ||||
| 				new Date((strike?.ban_until ?? new Date(0)).toUTCString()) | ||||
| 			banned_until: | ||||
| 				query && ban_time | ||||
| 					? Math.round(query.dataValues.striked_at.getTime() / 1000 + ban_time!) | ||||
| 					: null, | ||||
| 			outlawed_until: | ||||
| 				query && outlawed_time | ||||
| 					? Math.round(query.dataValues.striked_at.getTime() / 1000 + outlawed_time!) | ||||
| 					: null | ||||
| 		}), | ||||
| 		{ status: 200 } | ||||
| 	); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user