diff --git a/packages/hydrooj/package.json b/packages/hydrooj/package.json index 23710c799..66c50f66e 100644 --- a/packages/hydrooj/package.json +++ b/packages/hydrooj/package.json @@ -1,6 +1,6 @@ { "name": "hydrooj", - "version": "2.13.32", + "version": "2.13.33", "bin": "bin/hydrooj.js", "main": "dist/loader.js", "typings": "dist/loader.d.ts", diff --git a/packages/hydrooj/src/error.ts b/packages/hydrooj/src/error.ts index 3f7d60f31..799a1cf8f 100644 --- a/packages/hydrooj/src/error.ts +++ b/packages/hydrooj/src/error.ts @@ -97,11 +97,11 @@ export const ProblemDataNotFoundError = Err('ProblemDataNotFoundError', NotFound export const MessageNotFoundError = Err('MessageNotFoundError', NotFoundError, 'Message {0} not found.'); export const DocumentNotFoundError = Err('DocumentNotFoundError', NotFoundError, 'Document {2} not found.'); -export const ProblemNotFoundError = Err('ProblemNotFountError', DocumentNotFoundError, 'Problem {0} not found.'); -export const SolutionNotFoundError = Err('SolutionNotFoundError', DocumentNotFoundError, 'Solution {0} not found.'); -export const TrainingNotFoundError = Err('TrainingNotFoundError', DocumentNotFoundError, 'Training {0} not found.'); -export const ContestNotFoundError = Err('ContestNotFoundError', DocumentNotFoundError, 'Contest {0} not found.'); -export const DiscussionNotFoundError = Err('DiscussionNotFoundError', DocumentNotFoundError, 'Discussion {0} not found.'); +export const ProblemNotFoundError = Err('ProblemNotFountError', DocumentNotFoundError, 'Problem {1} not found.'); +export const SolutionNotFoundError = Err('SolutionNotFoundError', DocumentNotFoundError, 'Solution {1} not found.'); +export const TrainingNotFoundError = Err('TrainingNotFoundError', DocumentNotFoundError, 'Training {1} not found.'); +export const ContestNotFoundError = Err('ContestNotFoundError', DocumentNotFoundError, 'Contest {1} not found.'); +export const DiscussionNotFoundError = Err('DiscussionNotFoundError', DocumentNotFoundError, 'Discussion {1} not found.'); export const DiscussionNodeNotFoundError = Err('DiscussionNodeNotFoundError', DocumentNotFoundError, 'Discussion node {1} not found.'); export const InvalidOperationError = Err('InvalidOperationError', MethodNotAllowedError); diff --git a/packages/hydrooj/src/handler/domain.ts b/packages/hydrooj/src/handler/domain.ts index 52fe3cd45..018200be3 100644 --- a/packages/hydrooj/src/handler/domain.ts +++ b/packages/hydrooj/src/handler/domain.ts @@ -222,14 +222,13 @@ class DomainJoinApplicationsHandler extends ManageHandler { if (method === domain.JOIN_METHOD_NONE) joinSettings = null; else { if (!roles.includes(role)) throw new ValidationError('role'); - if (!domain.JOIN_EXPIRATION_RANGE[expire]) throw new ValidationError('expire'); + if (expire === domain.JOIN_EXPIRATION_KEEP_CURRENT) joinSettings.expire = current.expire; + else if (expire === domain.JOIN_EXPIRATION_UNLIMITED) joinSettings.expire = null; + else if (!domain.JOIN_EXPIRATION_RANGE[expire]) throw new ValidationError('expire'); + else joinSettings.expire = moment().add(expire, 'hours').toDate(); if (!current && expire === domain.JOIN_EXPIRATION_KEEP_CURRENT) throw new ValidationError('expire'); joinSettings = { method, role }; if (method === domain.JOIN_METHOD_CODE) joinSettings.code = invitationCode; - if (expire === domain.JOIN_EXPIRATION_KEEP_CURRENT) { - joinSettings.expire = current.expire; - } else if (expire === domain.JOIN_EXPIRATION_UNLIMITED) joinSettings.expire = null; - else joinSettings.expire = moment().add(expire, 'hours').toDate(); } await domain.edit(this.domain._id, { join: joinSettings }); this.back();