feat: add widget endpoints
Implemented the four widget related endpoints of the api. Partial user
object being returned as part of the widget.json endpoint [1] is an
intentional choice related to privacy [2].

The widget.json endpoint will require additional changes upon completion
of other work. Member details will need to return extra key/values for
connected users to voice channels. An additional avatar_url value will
hold an unique avatar url for the user + guild, fetched via a CDN
endpoint widget-avatars.

New dependencies `canvas` and `image-size`. Canvas is used to create the
widget.png endpoint image [3]. Image-size is used to set the canvas'
size to match the widget template images.

Use regex in determining if a NO_AUTHORIZATION_ROUTES is hit or not.

[1] https://discord.com/developers/docs/resources/guild#get-guild-widget
[2] https://github.com/discord/discord-api-docs/issues/1287
[3] https://discord.com/developers/docs/resources/guild#get-guild-widget-image

Closes: #9, #110
1 parent cbe6095 commit f10df31f5c9b99300a54a1c45d45269a96a16a92
@Umimaso Umimaso authored on 19 Jun 2021
Showing 12 changed files
View
cache/widget/banner1.png 0 → 100644
View
cache/widget/banner2.png 0 → 100644
View
cache/widget/banner3.png 0 → 100644
View
cache/widget/banner4.png 0 → 100644
View
cache/widget/shield.png 0 → 100644
View
client_test/index.html
View
package.json
View
src/middlewares/Authentication.ts
View
src/routes/guilds/#guild_id/widget.json.ts 0 → 100644
View
src/routes/guilds/#guild_id/widget.png.ts 0 → 100644
View
src/routes/guilds/#guild_id/widget.ts 0 → 100644
View
src/schema/Widget.ts 0 → 100644