@questlabs/core
Version:
This is the quest SDK
209 lines (208 loc) • 6.24 kB
JavaScript
;
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;