UNPKG

@questlabs/core

Version:
209 lines (208 loc) 6.24 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.EligibilityCriteria = void 0; const constants_1 = require("../../utils/constants"); class EligibilityCriteria { createUserInputText({ title, xp, frequency, effort, importance, }) { return { type: constants_1.EligibilityCriteriaTypeConst.USER_INPUT_TEXT, source: constants_1.EligibilityCriteriaSource.USER_INPUT, data: { title, effort, importance, xp, frequency, }, }; } createUserInputSingleChoice({ title, options, effort, importance, xp, frequency, }) { return { type: constants_1.EligibilityCriteriaTypeConst.USER_INPUT_SINGLE_CHOICE, source: constants_1.EligibilityCriteriaSource.USER_INPUT, data: { title, options, effort, importance, xp, frequency, }, }; } createUserInputMultiChoice({ title, options, effort, importance, xp, frequency, }) { return { type: constants_1.EligibilityCriteriaTypeConst.USER_INPUT_MULTI_CHOICE, source: constants_1.EligibilityCriteriaSource.USER_INPUT, data: { title, options, effort, importance, xp, frequency, }, }; } createUserInputDate({ title, effort, importance, xp, frequency, }) { return { type: constants_1.EligibilityCriteriaTypeConst.USER_INPUT_DATE, source: constants_1.EligibilityCriteriaSource.USER_INPUT, data: { title, effort, importance, xp, frequency, }, }; } createUserEventMetric({ metric, metricName, metricCount, title, effort, importance, xp, frequency, }) { return { type: constants_1.EligibilityCriteriaTypeConst.DAPP_METRIC_THRESHOLD, source: constants_1.EligibilityCriteriaSource.USER_EVENT, data: { metric, metricName, metricCount, title, effort, importance, xp, frequency, }, extraData: { metric, metricName, }, }; } createUserEventStreak({ streak, streakCount, streakName, title, xp, frequency, effort, importance, }) { return { type: constants_1.EligibilityCriteriaTypeConst.DAPP_STREAK_THRESHOLD, source: constants_1.EligibilityCriteriaSource.USER_EVENT, data: { streak, streakCount, streakName, title, xp, frequency, effort, importance, }, extraData: { streak, streakName, }, }; } createLink({ linkActionName, linkActionUrl, effort, importance, xp, frequency, }) { return { type: constants_1.EligibilityCriteriaTypeConst.LINK_OPEN_READ, source: constants_1.EligibilityCriteriaSource.LINK, data: { linkActionName, linkActionUrl, effort, importance, xp, frequency, }, }; } createDiscordJoinServer({ discordInviteLink, serverId, serverName, effort, importance, xp, frequency, }) { return { type: constants_1.EligibilityCriteriaTypeConst.DISCORD_JOIN_GUILD, source: constants_1.EligibilityCriteriaSource.DISCORD, data: { discordInviteLink, serverId, serverName, effort, importance, xp, frequency, }, extraData: { serverName, serverId, }, }; } createTwitterFollow({ twitterUsername, effort, importance, frequency, xp, }) { return { type: constants_1.EligibilityCriteriaTypeConst.TWITTER_FOLLOW_ACCOUNT, source: constants_1.EligibilityCriteriaSource.TWITTER, data: { twitterUsername, effort, importance, frequency, xp, }, }; } createTwitterLike({ twitterPostURL, effort, importance, xp, frequency, }) { return { type: constants_1.EligibilityCriteriaTypeConst.TWITTER_LIKE_POST, source: constants_1.EligibilityCriteriaSource.TWITTER, data: { twitterPostURL, effort, importance, frequency, xp, }, }; } createCustomCriteria({ type, source, data }) { return Object.assign({ type, data }, (source && { source })); } verifyUserInputText(criteriaId, answer) { return { criteriaId, answer: [answer], }; } verifyUserInputSingleChoice(criteriaId, answer) { return { criteriaId, answer: [answer], }; } verifyUserInputMultipleChoice(criteriaId, answers) { return { criteriaId, answer: answers, }; } verifyUserInputDate(criteriaId, date) { return { criteriaId, answer: [date], }; } verifyLink(criteriaId) { return { criteriaId, }; } verifyTwitterFollowAccount(criteriaId) { return { criteriaId, }; } verifyTwitterLikePost(criteriaId) { return { criteriaId, }; } verifyDiscordJoinServer(criteriaId) { return { criteriaId, }; } } exports.EligibilityCriteria = EligibilityCriteria;