refactor: move guard checks to service

This commit is contained in:
Elias Schneider
2023-01-31 13:53:23 +01:00
parent 233c26e5cf
commit cd9d828686
3 changed files with 16 additions and 19 deletions

View File

@@ -1,7 +1,6 @@
import {
CanActivate,
ExecutionContext,
ForbiddenException,
Injectable,
NotFoundException,
} from "@nestjs/common";
@@ -27,18 +26,10 @@ export class ShareTokenSecurity implements CanActivate {
include: { security: true },
});
if (
!share ||
(moment().isAfter(share.expiration) &&
!moment(share.expiration).isSame(0))
)
throw new NotFoundException("Share not found");
const isExpired =
moment().isAfter(share.expiration) && !moment(share.expiration).isSame(0);
if (share.security?.maxViews && share.security.maxViews <= share.views)
throw new ForbiddenException(
"Maximum views exceeded",
"share_max_views_exceeded"
);
if (!share || isExpired) throw new NotFoundException("Share not found");
return true;
}