fix snapshots

This commit is contained in:
Emily
2024-11-01 15:47:43 +01:00
parent 36c4406af2
commit f86a399840
7 changed files with 20 additions and 37 deletions

View File

@@ -56,7 +56,7 @@ const { createAlert } = useAlert()
async function deleteSnapshot(close: () => any) { async function deleteSnapshot(close: () => any) {
await $fetch("/api/snapshot/delete", { await $fetch("/api/snapshot/delete", {
method: 'DELETE', method: 'DELETE',
...signHeaders({ 'Content-Type': 'application/json' }), headers: useComputedHeaders({ useSnapshotDates: false }).value,
body: JSON.stringify({ body: JSON.stringify({
id: snapshot.value._id.toString(), id: snapshot.value._id.toString(),
}) })
@@ -71,11 +71,7 @@ async function generatePDF() {
try { try {
const res = await $fetch<Blob>('/api/project/generate_pdf', { const res = await $fetch<Blob>('/api/project/generate_pdf', {
...signHeaders({ headers: useComputedHeaders({ useSnapshotDates: false, custom: { 'x-snapshot-name': snapshot.value.name } }).value,
'x-snapshot-name': snapshot.value.name,
'x-from': snapshot.value.from.toISOString(),
'x-to': snapshot.value.to.toISOString(),
}),
responseType: 'blob' responseType: 'blob'
}); });
@@ -149,8 +145,8 @@ const pricingDrawer = usePricingDrawer();
</div> </div>
</LyxUiButton> </LyxUiButton>
<LyxUiButton v-if="projectList && (projectList.length >= (maxProjects || 1))" <LyxUiButton v-if="projectList && (projectList.length >= (maxProjects || 1))" type="outlined"
type="outlined" class="w-full py-1 mt-2 text-[.7rem]"> class="w-full py-1 mt-2 text-[.7rem]">
<div class="flex items-center gap-2 justify-center"> <div class="flex items-center gap-2 justify-center">
<div><i class="text-lyx-text-darker far fa-lock"></i></div> <div><i class="text-lyx-text-darker far fa-lock"></i></div>
<div class="text-lyx-text-darker"> Projects limit reached </div> <div class="text-lyx-text-darker"> Projects limit reached </div>

View File

@@ -42,7 +42,7 @@ const { createAlert } = useAlert()
async function confirmSnapshot() { async function confirmSnapshot() {
await $fetch("/api/snapshot/create", { await $fetch("/api/snapshot/create", {
method: 'POST', method: 'POST',
...signHeaders({ 'Content-Type': 'application/json' }), headers: useComputedHeaders({ useSnapshotDates: false }).value,
body: JSON.stringify({ body: JSON.stringify({
name: snapshotName.value, name: snapshotName.value,
color: currentColor.value, color: currentColor.value,

View File

@@ -1,7 +1,6 @@
import { getUserProjectFromId } from "~/server/LIVE_DEMO_DATA"; import { getUserProjectFromId } from "~/server/LIVE_DEMO_DATA";
import { ApiSettingsModel, TApiSettings } from "@schema/ApiSettingsSchema"; import { ApiSettingsModel, TApiSettings } from "@schema/ApiSettingsSchema";
import { UserSettingsModel } from "@schema/UserSettings";
import { ProjectModel } from "@schema/ProjectSchema"; import { ProjectModel } from "@schema/ProjectSchema";
import crypto from 'crypto'; import crypto from 'crypto';

View File

@@ -4,7 +4,6 @@ import pdfkit from 'pdfkit';
import { PassThrough } from 'node:stream'; import { PassThrough } from 'node:stream';
import { ProjectModel } from "@schema/ProjectSchema"; import { ProjectModel } from "@schema/ProjectSchema";
import { UserSettingsModel } from "@schema/UserSettings";
import { VisitModel } from '@schema/metrics/VisitSchema'; import { VisitModel } from '@schema/metrics/VisitSchema';
import { EventModel } from '@schema/metrics/EventSchema'; import { EventModel } from '@schema/metrics/EventSchema';
@@ -82,15 +81,13 @@ function createPdf(data: PDFGenerationData) {
export default defineEventHandler(async event => { export default defineEventHandler(async event => {
const data = await getRequestData(event, { requireSchema: false, allowGuests: true, requireRange: false });
if (!data) return;
const userData = getRequestUser(event); const userData = getRequestUser(event);
if (!userData?.logged) return setResponseStatus(event, 400, 'NotLogged'); if (!userData?.logged) return setResponseStatus(event, 400, 'NotLogged');
const currentActiveProject = await UserSettingsModel.findOne({ user_id: userData.id }); const project = await ProjectModel.findById(data.project_id);
if (!currentActiveProject) return setResponseStatus(event, 400, 'You need to select a project');
const project_id = currentActiveProject.active_project_id;
const project = await ProjectModel.findById(project_id);
if (!project) return setResponseStatus(event, 400, 'Project not found'); if (!project) return setResponseStatus(event, 400, 'Project not found');
const snapshotHeader = getHeader(event, 'x-snapshot-name'); const snapshotHeader = getHeader(event, 'x-snapshot-name');

View File

@@ -1,8 +1,7 @@
import { ProjectModel } from "@schema/ProjectSchema"; import { ProjectModel } from "@schema/ProjectSchema";
import { TeamMemberModel } from "@schema/TeamMemberSchema"; import { TeamMemberModel } from "@schema/TeamMemberSchema";
import { UserModel } from "@schema/UserSchema"; import { UserModel } from "@schema/UserSchema";
import { UserSettingsModel } from "@schema/UserSettings";
import StripeService from '~/server/services/StripeService';
export default defineEventHandler(async event => { export default defineEventHandler(async event => {

View File

@@ -1,10 +1,12 @@
import { ProjectModel } from "@schema/ProjectSchema"; import { ProjectModel } from "@schema/ProjectSchema";
import { ProjectSnapshotModel } from "@schema/ProjectSnapshot"; import { ProjectSnapshotModel } from "@schema/ProjectSnapshot";
import { UserSettingsModel } from "@schema/UserSettings";
export default defineEventHandler(async event => { export default defineEventHandler(async event => {
const data = await getRequestData(event, { requireSchema: false, allowGuests: true, requireRange: false });
if (!data) return;
const body = await readBody(event); const body = await readBody(event);
const { name: newSnapshotName, from, to, color: snapshotColor } = body; const { name: newSnapshotName, from, to, color: snapshotColor } = body;
@@ -19,13 +21,8 @@ export default defineEventHandler(async event => {
const userData = getRequestUser(event); const userData = getRequestUser(event);
if (!userData?.logged) return setResponseStatus(event, 400, 'NotLogged'); if (!userData?.logged) return setResponseStatus(event, 400, 'NotLogged');
const userSettings = await UserSettingsModel.findOne({ user_id: userData.id }, { active_project_id: 1 });
if (!userSettings) return setResponseStatus(event, 500, 'Unkwnown error'); const project = await ProjectModel.findById(data.project_id);
const currentProjectId = userSettings.active_project_id;
const project = await ProjectModel.findById(currentProjectId);
if (!project) return setResponseStatus(event, 400, 'Project not found'); if (!project) return setResponseStatus(event, 400, 'Project not found');
@@ -34,7 +31,7 @@ export default defineEventHandler(async event => {
from: new Date(from), from: new Date(from),
to: new Date(to), to: new Date(to),
color: snapshotColor, color: snapshotColor,
project_id: currentProjectId project_id: data.project_id
}); });
return newSnapshot.id; return newSnapshot.id;

View File

@@ -1,10 +1,12 @@
import { ProjectModel } from "@schema/ProjectSchema"; import { ProjectModel } from "@schema/ProjectSchema";
import { ProjectSnapshotModel } from "@schema/ProjectSnapshot"; import { ProjectSnapshotModel } from "@schema/ProjectSnapshot";
import { UserSettingsModel } from "@schema/UserSettings";
export default defineEventHandler(async event => { export default defineEventHandler(async event => {
const data = await getRequestData(event, { requireSchema: false, allowGuests: false, requireRange: false });
if (!data) return;
const body = await readBody(event); const body = await readBody(event);
const { id: snapshotId } = body; const { id: snapshotId } = body;
@@ -14,18 +16,11 @@ export default defineEventHandler(async event => {
const userData = getRequestUser(event); const userData = getRequestUser(event);
if (!userData?.logged) return setResponseStatus(event, 400, 'NotLogged'); if (!userData?.logged) return setResponseStatus(event, 400, 'NotLogged');
const userSettings = await UserSettingsModel.findOne({ user_id: userData.id }, { active_project_id: 1 }); const project = await ProjectModel.findById(data.project_id);
if (!userSettings) return setResponseStatus(event, 500, 'Unkwnown error');
const currentProjectId = userSettings.active_project_id;
const project = await ProjectModel.findById(currentProjectId);
if (!project) return setResponseStatus(event, 400, 'Project not found'); if (!project) return setResponseStatus(event, 400, 'Project not found');
const deletation = await ProjectSnapshotModel.deleteOne({ const deletation = await ProjectSnapshotModel.deleteOne({
project_id: currentProjectId, project_id: data.project_id,
_id: snapshotId _id: snapshotId
}); });