fix(lint): fix type errors

This commit is contained in:
lemmyMwaura
2024-08-07 22:59:50 +03:00
parent b0a5023723
commit 9061ec2dff
5 changed files with 22 additions and 20 deletions

View File

@@ -21,6 +21,7 @@ export const SecretSharingSchema = z.object({
expiresAfterViews: z.number().nullable().optional(),
accessType: z.string().default("anyone"),
name: z.string().nullable().optional(),
password: z.string().nullable().optional(),
lastViewedAt: z.date().nullable().optional()
});

View File

@@ -80,7 +80,6 @@ export const registerSecretSharingRouter = async (server: FastifyZodProvider) =>
orgId: req.permission?.orgId
});
// return undefined if it does not exist, has password set or has no more views allowed.
if (!sharedSecret || sharedSecret.password) return undefined;
return {

View File

@@ -1,7 +1,7 @@
import bcrypt from "bcrypt";
import { TPermissionServiceFactory } from "@app/ee/services/permission/permission-service";
import { BadRequestError, ForbiddenRequestError, NotFoundError, UnauthorizedError } from "@app/lib/errors";
import { BadRequestError, ForbiddenRequestError, InternalServerError, NotFoundError, UnauthorizedError } from "@app/lib/errors";
import { SecretSharingAccessType } from "@app/lib/types";
import { TOrgDALFactory } from "../org/org-dal";
@@ -217,7 +217,12 @@ export const secretSharingServiceFactory = ({
if (accessType === SecretSharingAccessType.Organization && orgId !== sharedSecret.orgId)
throw new UnauthorizedError();
const isMatch = await bcrypt.compare(password, sharedSecret.password);
if (!sharedSecret.password)
throw new InternalServerError({
message: "Something went wrong"
});
const isMatch = await bcrypt.compare(password, sharedSecret.password as string);
if (!isMatch) return undefined
// we reduce the view count when we are sure the password matches.

View File

@@ -43,32 +43,31 @@ export const useGetActiveSharedSecretById = ({
sharedSecretId: string;
hashedHex: string;
}) => {
return useQuery<TViewSharedSecretResponse, [string]>({
enabled: Boolean(sharedSecretId) && Boolean(hashedHex),
queryFn: async () => {
const params = new URLSearchParams({
hashedHex
});
return useQuery<TViewSharedSecretResponse | null>(
[`sharedSecret-${sharedSecretId}`],
async () => {
const params = new URLSearchParams({ hashedHex });
const { data } = await apiRequest.get<TViewSharedSecretResponse>(
`/api/v1/secret-sharing/public/${sharedSecretId}`,
{
params
}
);
if (!data) return null;
if (!data) return null
return {
encryptedValue: data.encryptedValue,
password: data.password,
iv: data.iv,
tag: data.tag,
accessType: data.accessType,
orgName: data.orgName
};
},
{
enabled: Boolean(sharedSecretId) && Boolean(hashedHex)
}
});
);
};
// returns a secret (secret or undefined if password doesn't match)

View File

@@ -10,8 +10,7 @@ import { TViewSharedSecretResponse, useGetActiveSharedSecretById } from "@app/ho
import { SecretContainer, SecretErrorContainer, PasswordContainer } from "./components";
export const ViewSecretPublicPage = () => {
const [secret, setSecret] = useState(null)
const [error, setError] = useState(null)
const [secret, setSecret] = useState<TViewSharedSecretResponse | null>(null);
const router = useRouter();
const { id, key: urlEncodedPublicKey } = router.query;
@@ -19,15 +18,14 @@ export const ViewSecretPublicPage = () => {
? urlEncodedPublicKey.toString().split("-")
: ["", ""];
const { data: fetchSecret, error: fetchError, isLoading } = useGetActiveSharedSecretById({
const { data: fetchSecret, error, isLoading } = useGetActiveSharedSecretById({
sharedSecretId: id as string,
hashedHex
});
useEffect(() => {
if (fetchSecret) setSecret(fetchSecret)
if (fetchError) setError(fetchError)
}, [fetchSecret, fetchError])
}, [fetchSecret, error])
const handleSecret = useCallback((value: TViewSharedSecretResponse) => {
setSecret(value)