refactor(achievements): crush down to much fewer notification types

most work by @CuriousMagpie
This commit is contained in:
SabreCat
2022-05-12 15:25:40 -05:00
parent d132b057eb
commit 1a74d2b3b0
21 changed files with 434 additions and 839 deletions

View File

@@ -5,75 +5,85 @@ import validator from 'validator';
import baseModel from '../libs/baseModel';
const NOTIFICATION_TYPES = [
'DROPS_ENABLED', // unused
'REBIRTH_ENABLED',
'WON_CHALLENGE',
'STREAK_ACHIEVEMENT',
'ULTIMATE_GEAR_ACHIEVEMENT',
'REBIRTH_ACHIEVEMENT',
'NEW_CONTRIBUTOR_LEVEL',
// general notifications
'CARD_RECEIVED',
'CRON',
'DROP_CAP_REACHED',
'DROPS_ENABLED', // unused
'FIRST_DROPS',
'GIFT_ONE_GET_ONE',
'GROUP_INVITE_ACCEPTED',
'GROUP_TASK_APPROVAL',
'GROUP_TASK_APPROVED',
'GROUP_TASK_ASSIGNED',
'GROUP_TASK_CLAIMED',
'GROUP_TASK_NEEDS_WORK',
'LOGIN_INCENTIVE',
'GROUP_INVITE_ACCEPTED',
'SCORED_TASK',
'BOSS_DAMAGE', // Not used currently but kept to avoid validation errors
'GIFT_ONE_GET_ONE',
'GUILD_PROMPT',
'GUILD_JOINED_ACHIEVEMENT',
'CHALLENGE_JOINED_ACHIEVEMENT',
'INVITED_FRIEND_ACHIEVEMENT',
'CARD_RECEIVED',
'NEW_MYSTERY_ITEMS',
'UNALLOCATED_STATS_POINTS',
'NEW_INBOX_MESSAGE',
'NEW_STUFF',
'LEVELED_UP', // not in use
'LOGIN_INCENTIVE',
'NEW_CHAT_MESSAGE',
'LEVELED_UP', // Not in use
'FIRST_DROPS',
'NEW_CONTRIBUTOR_LEVEL',
'NEW_INBOX_MESSAGE',
'NEW_MYSTERY_ITEMS',
'NEW_STUFF',
'ONBOARDING_COMPLETE',
'ACHIEVEMENT_ALL_YOUR_BASE',
'ACHIEVEMENT_BACK_TO_BASICS',
'ACHIEVEMENT_JUST_ADD_WATER',
'ACHIEVEMENT_LOST_MASTERCLASSER',
'ACHIEVEMENT_MIND_OVER_MATTER',
'ACHIEVEMENT_DUST_DEVIL',
'ACHIEVEMENT_ARID_AUTHORITY',
'ACHIEVEMENT_PARTY_UP',
'ACHIEVEMENT_PARTY_ON',
'ACHIEVEMENT_BEAST_MASTER',
'ACHIEVEMENT_MOUNT_MASTER',
'ACHIEVEMENT_TRIAD_BINGO',
'ACHIEVEMENT_MONSTER_MAGUS',
'ACHIEVEMENT_UNDEAD_UNDERTAKER',
'ACHIEVEMENT_PRIMED_FOR_PAINTING',
'ACHIEVEMENT_PEARLY_PRO',
'ACHIEVEMENT_TICKLED_PINK',
'ACHIEVEMENT_ROSY_OUTLOOK',
'ACHIEVEMENT_BUG_BONANZA',
'ACHIEVEMENT_BARE_NECESSITIES',
'ACHIEVEMENT_FRESHWATER_FRIENDS',
'ACHIEVEMENT_GOOD_AS_GOLD',
'ACHIEVEMENT_ALL_THAT_GLITTERS',
'ACHIEVEMENT_BONE_COLLECTOR',
'ACHIEVEMENT_SKELETON_CREW',
'ACHIEVEMENT_SEEING_RED',
'ACHIEVEMENT_RED_LETTER_DAY',
'ACHIEVEMENT_LEGENDARY_BESTIARY',
'ACHIEVEMENT_SEASONAL_SPECIALIST',
'ACHIEVEMENT_VIOLETS_ARE_BLUE',
'ACHIEVEMENT_WILD_BLUE_YONDER',
'ACHIEVEMENT_DOMESTICATED',
'ACHIEVEMENT_SHADY_CUSTOMER',
'ACHIEVEMENT_SHADE_OF_IT_ALL',
'ACHIEVEMENT_ZODIAC_ZOOKEEPER',
'ACHIEVEMENT_BIRDS_OF_A_FEATHER',
'REBIRTH_ENABLED',
'SCORED_TASK',
'UNALLOCATED_STATS_POINTS',
'WON_CHALLENGE',
// achievement notifications
'ACHIEVEMENT', // generic achievement notification, details inside `notification.data`
'DROP_CAP_REACHED',
'CHALLENGE_JOINED_ACHIEVEMENT',
'GUILD_JOINED_ACHIEVEMENT',
'ACHIEVEMENT_PARTY_ON',
'ACHIEVEMENT_PARTY_UP',
'INVITED_FRIEND_ACHIEVEMENT',
'REBIRTH_ACHIEVEMENT',
'STREAK_ACHIEVEMENT',
'ULTIMATE_GEAR_ACHIEVEMENT',
'ACHIEVEMENT_STABLE',
'ACHIEVEMENT_QUESTS',
'ACHIEVEMENT_ANIMAL_SET',
'ACHIEVEMENT_PET_COLOR',
'ACHIEVEMENT_MOUNT_COLOR',
// Deprecated notification types. Can be removed once old data is cleaned out
'BOSS_DAMAGE', // deprecated
'ACHIEVEMENT_ALL_YOUR_BASE', // deprecated
'ACHIEVEMENT_BACK_TO_BASICS', // deprecated
'ACHIEVEMENT_JUST_ADD_WATER', // deprecated
'ACHIEVEMENT_LOST_MASTERCLASSER', // deprecated
'ACHIEVEMENT_MIND_OVER_MATTER', // deprecated
'ACHIEVEMENT_DUST_DEVIL', // deprecated
'ACHIEVEMENT_ARID_AUTHORITY', // deprecated
'ACHIEVEMENT_PARTY_UP', // deprecated
'ACHIEVEMENT_PARTY_ON', // deprecated
'ACHIEVEMENT_BEAST_MASTER', // deprecated
'ACHIEVEMENT_MOUNT_MASTER', // deprecated
'ACHIEVEMENT_TRIAD_BINGO', // deprecated
'ACHIEVEMENT_MONSTER_MAGUS', // deprecated
'ACHIEVEMENT_UNDEAD_UNDERTAKER', // deprecated
'ACHIEVEMENT_PRIMED_FOR_PAINTING', // deprecated
'ACHIEVEMENT_PEARLY_PRO', // deprecated
'ACHIEVEMENT_TICKLED_PINK', // deprecated
'ACHIEVEMENT_ROSY_OUTLOOK', // deprecated
'ACHIEVEMENT_BUG_BONANZA', // deprecated
'ACHIEVEMENT_BARE_NECESSITIES', // deprecated
'ACHIEVEMENT_FRESHWATER_FRIENDS', // deprecated
'ACHIEVEMENT_GOOD_AS_GOLD', // deprecated
'ACHIEVEMENT_ALL_THAT_GLITTERS', // deprecated
'ACHIEVEMENT_BONE_COLLECTOR', // deprecated
'ACHIEVEMENT_SKELETON_CREW', // deprecated
'ACHIEVEMENT_SEEING_RED', // deprecated
'ACHIEVEMENT_RED_LETTER_DAY', // deprecated
'ACHIEVEMENT_LEGENDARY_BESTIARY', // deprecated
'ACHIEVEMENT_SEASONAL_SPECIALIST', // deprecated
'ACHIEVEMENT_VIOLETS_ARE_BLUE', // deprecated
'ACHIEVEMENT_WILD_BLUE_YONDER', // deprecated
'ACHIEVEMENT_DOMESTICATED', // deprecated
'ACHIEVEMENT_SHADY_CUSTOMER', // deprecated
'ACHIEVEMENT_SHADE_OF_IT_ALL', // deprecated
'ACHIEVEMENT_ZODIAC_ZOOKEEPER', // deprecated
'ACHIEVEMENT_BIRDS_OF_A_FEATHER', // deprecated
];
const { Schema } = mongoose;