From 9c6a1e808f5253dc6224156571db06d53d4c7527 Mon Sep 17 00:00:00 2001 From: digimint Date: Fri, 21 Jun 2024 23:24:05 -0500 Subject: [PATCH] Add UID to TokenScopes for database purposes. --- src/main/scala/twitch/api/TokenScope.scala | 147 +++++++++++---------- 1 file changed, 77 insertions(+), 70 deletions(-) diff --git a/src/main/scala/twitch/api/TokenScope.scala b/src/main/scala/twitch/api/TokenScope.scala index 40260af..983d114 100644 --- a/src/main/scala/twitch/api/TokenScope.scala +++ b/src/main/scala/twitch/api/TokenScope.scala @@ -17,85 +17,92 @@ */ package unit_ca5.twitch -enum TokenScope: +/** + * Enumeration of all scopes currently supported by the Twitch API + * + * @param uid A unique identifier for each scope. This is used to associate + * tokens with scopes in the database. The ordering of scopes within this enum + * is unimportant, as long as each scope's UID is unique and does not change. + */ +enum TokenScope(val uid: Int): // API Scopes - case AnalyticsReadExtensions - case AnalyticsReadGames + case AnalyticsReadExtensions extends TokenScope(0x0000) + case AnalyticsReadGames extends TokenScope(0x0001) - case BitsRead + case BitsRead extends TokenScope(0x0010) - case ChannelManageAds - case ChannelReadAds - case ChannelManageBroadcast - case ChannelReadCharity - case ChannelEditCommercial - case ChannelReadEditors - case ChannelManageExtensions - case ChannelReadGoals - case ChannelReadGuestStar - case ChannelManageGuestStar - case ChannelReadHypeTrain - case ChannelManageModerators - case ChannelReadPolls - case ChannelManagePolls - case ChannelReadPredictions - case ChannelManagePredictions - case ChannelManageRaids - case ChannelReadRedemptions - case ChannelManageRedemptions - case ChannelManageSchedule - case ChannelReadStreamKey - case ChannelReadSubscriptions - case ChannelManageVideos - case ChannelReadVIPs - case ChannelManageVIPs + case ChannelManageAds extends TokenScope(0x0020) + case ChannelReadAds extends TokenScope(0x0021) + case ChannelManageBroadcast extends TokenScope(0x0022) + case ChannelReadCharity extends TokenScope(0x0023) + case ChannelEditCommercial extends TokenScope(0x0024) + case ChannelReadEditors extends TokenScope(0x0025) + case ChannelManageExtensions extends TokenScope(0x0026) + case ChannelReadGoals extends TokenScope(0x0027) + case ChannelReadGuestStar extends TokenScope(0x0028) + case ChannelManageGuestStar extends TokenScope(0x0029) + case ChannelReadHypeTrain extends TokenScope(0x002A) + case ChannelManageModerators extends TokenScope(0x002B) + case ChannelReadPolls extends TokenScope(0x002C) + case ChannelManagePolls extends TokenScope(0x002D) + case ChannelReadPredictions extends TokenScope(0x002E) + case ChannelManagePredictions extends TokenScope(0x002F) + case ChannelManageRaids extends TokenScope(0x0030) + case ChannelReadRedemptions extends TokenScope(0x0031) + case ChannelManageRedemptions extends TokenScope(0x0032) + case ChannelManageSchedule extends TokenScope(0x0033) + case ChannelReadStreamKey extends TokenScope(0x0034) + case ChannelReadSubscriptions extends TokenScope(0x0035) + case ChannelManageVideos extends TokenScope(0x0036) + case ChannelReadVIPs extends TokenScope(0x0037) + case ChannelManageVIPs extends TokenScope(0x0038) - case ClipsEdit + case ClipsEdit extends TokenScope(0x0040) - case ModerationRead + case ModerationRead extends TokenScope(0x0050) - case ModeratorManageAnnouncement - case ModeratorManageAutomod - case ModeratorReadAutomodSettings - case ModeratorManageAutomodSettings - case ModeratorManageBannedUsers - case ModeratorReadBlockedTerms - case ModeratorManageBlockedTerms - case ModeratorManageChatMessages - case ModeratorReadChatters - case ModeratorReadFollowers - case ModeratorReadGuestStar - case ModeratorManageGuestStar - case ModeratorReadShieldMode - case ModeratorManageShieldMode - case ModeratorReadShoutouts - case ModeratorManageShoutouts - case ModeratorReadUnbanRequests - case ModeratorManageUnbanRequests + case ModeratorManageAnnouncement extends TokenScope(0x0060) + case ModeratorManageAutomod extends TokenScope(0x0061) + case ModeratorReadAutomodSettings extends TokenScope(0x0062) + case ModeratorManageAutomodSettings extends TokenScope(0x0063) + case ModeratorManageBannedUsers extends TokenScope(0x0064) + case ModeratorReadBlockedTerms extends TokenScope(0x0065) + case ModeratorManageBlockedTerms extends TokenScope(0x0066) + case ModeratorManageChatMessages extends TokenScope(0x0067) + case ModeratorReadChatters extends TokenScope(0x0068) + case ModeratorReadFollowers extends TokenScope(0x0069) + case ModeratorReadGuestStar extends TokenScope(0x006A) + case ModeratorManageGuestStar extends TokenScope(0x006B) + case ModeratorReadShieldMode extends TokenScope(0x006C) + case ModeratorManageShieldMode extends TokenScope(0x006D) + case ModeratorReadShoutouts extends TokenScope(0x006E) + case ModeratorManageShoutouts extends TokenScope(0x006F) + case ModeratorReadUnbanRequests extends TokenScope(0x0070) + case ModeratorManageUnbanRequests extends TokenScope(0x0071) - case UserEdit - case UserEditFollows - case UserReadBlockedUsers - case UserManageBlockedUsers - case UserReadBroadcast - case UserManageChatColor - case UserReadEmail - case UserReadEmotes - case UserReadFollows - case UserReadModeratedChannels - case UserReadSubscriptions - case UserManageWhispers + case UserEdit extends TokenScope(0x0080) + case UserEditFollows extends TokenScope(0x0081) + case UserReadBlockedUsers extends TokenScope(0x0082) + case UserManageBlockedUsers extends TokenScope(0x0083) + case UserReadBroadcast extends TokenScope(0x0084) + case UserManageChatColor extends TokenScope(0x0085) + case UserReadEmail extends TokenScope(0x0086) + case UserReadEmotes extends TokenScope(0x0087) + case UserReadFollows extends TokenScope(0x0088) + case UserReadModeratedChannels extends TokenScope(0x0089) + case UserReadSubscriptions extends TokenScope(0x008A) + case UserManageWhispers extends TokenScope(0x008B) // Chat and PubSub scopes - case ChannelBot - case ChannelModerate + case ChannelBot extends TokenScope(0x7000) + case ChannelModerate extends TokenScope(0x7001) - case ChatEdit - case ChatRead + case ChatEdit extends TokenScope(0x7010) + case ChatRead extends TokenScope(0x7011) - case UserBot - case UserReadChat - case UserWriteChat + case UserBot extends TokenScope(0x7020) + case UserReadChat extends TokenScope(0x7021) + case UserWriteChat extends TokenScope(0x7022) - case WhispersRead - case WhispersEdit \ No newline at end of file + case WhispersRead extends TokenScope(0x7030) + case WhispersEdit extends TokenScope(0x7031) \ No newline at end of file