|
1 | 1 | const { beginnerRejection } = require('./difficulty-02-beginner'); |
| 2 | +const { intermediateRejection } = require('./difficulty-03-intermediate'); |
| 3 | +const { advancedRejection } = require('./difficulty-04-advanced'); |
2 | 4 | const { capacityLimitReached } = require('./max-assignments-reached'); |
3 | 5 | const { spamNonGfiAssignment } = require('./spam-restrictions'); |
4 | 6 |
|
5 | 7 | const REJECTION_REASONS = |
6 | 8 | require('../eligibility/rejection-reasons'); |
7 | 9 |
|
8 | | -const rejectionRouter = ({ reason, context, username, urls }) => { |
| 10 | +const rejectionRouter = ({ reason, context = {}, username, urls = {} }) => { |
9 | 11 | switch (reason) { |
| 12 | + // ───── Beginner → Intermediate ladder |
10 | 13 | case REJECTION_REASONS.MISSING_GFI: |
11 | | - return beginnerRejection({ |
| 14 | + case REJECTION_REASONS.MISSING_BEGINNER: |
| 15 | + return intermediateRejection({ |
12 | 16 | username, |
13 | | - completedGfiCount: context.completedGfiCount, |
| 17 | + requiredGfiCount: context.requiredGfiCount ?? 1, |
| 18 | + requiredBeginnerCount: context.requiredBeginnerCount ?? 1, |
14 | 19 | browseGfiUrl: urls.gfi, |
| 20 | + browseBeginnerUrl: urls.beginner, |
15 | 21 | }); |
16 | 22 |
|
| 23 | + // ───── Intermediate → Advanced ladder |
| 24 | + case REJECTION_REASONS.MISSING_INTERMEDIATE: |
| 25 | + return advancedRejection({ |
| 26 | + username, |
| 27 | + requiredIntermediateCount: context.requiredCount ?? 1, |
| 28 | + browseIntermediateUrl: urls.intermediate, |
| 29 | + }); |
| 30 | + |
| 31 | + // ───── Shared rules |
17 | 32 | case REJECTION_REASONS.CAPACITY: |
18 | 33 | return capacityLimitReached({ |
19 | 34 | username, |
|
0 commit comments