feat: added icon option

This commit is contained in:
Junseo Park 2021-02-25 16:44:40 +09:00
parent 3ac7d3f355
commit a160d891bd
2 changed files with 8 additions and 4 deletions

View File

@ -8,7 +8,7 @@ import { get } from '@utils/Query'
import { BotBadgeType, DiscordEnpoints } from '@utils/Constants'
const Widget: NextApiHandler = async(req: ApiRequest, res: NextApiResponse) => {
const { id: param, type, style='flat', scale=1 } = req.query
const { id: param, type, style='flat', scale=1, icon=true } = req.query
const splitted = param.split('.')
const validated = await WidgetOptionsSchema.validate({
@ -16,7 +16,8 @@ const Widget: NextApiHandler = async(req: ApiRequest, res: NextApiResponse) => {
ext: splitted[splitted.length - 1],
style,
type,
scale
scale,
icon
}).then(el=> el).catch(e=> {
ResponseWrapper(res, { code: 400, errors: e.errors })
return null
@ -34,7 +35,7 @@ const Widget: NextApiHandler = async(req: ApiRequest, res: NextApiResponse) => {
...BotBadgeType(data)[type],
style: validated.style,
scale: validated.scale,
icon: `data:image/png;base64,${img.toString('base64')}`
icon: validated.icon ? `data:image/png;base64,${img.toString('base64')}` : null
}
res.send(badgen(badgeData))
@ -47,6 +48,7 @@ interface ApiRequest extends NextApiRequest {
id: string
style?: string
scale?: string
icon?: string
}
}

View File

@ -43,7 +43,8 @@ export const WidgetOptionsSchema: Yup.SchemaOf<WidgetOptions> = Yup.object({
ext: Yup.mixed<widgetExt>().oneOf(['svg']).required(),
type: Yup.mixed<widgetType>().oneOf(['votes', 'servers', 'status']).required(),
scale: Yup.number().positive().min(0.5).max(3).required(),
style: Yup.mixed<'flat'|'classic'>().oneOf(['flat', 'classic']).default('flat')
style: Yup.mixed<'flat'|'classic'>().oneOf(['flat', 'classic']).default('flat'),
icon: Yup.boolean().default(true)
})
interface WidgetOptions {
@ -52,6 +53,7 @@ interface WidgetOptions {
type: widgetType
scale: number
style: 'flat' | 'classic'
icon: boolean
}
type widgetType = 'votes' | 'servers' | 'status'