mirror of
https://github.com/Litlyx/litlyx
synced 2025-12-10 07:48:37 +01:00
fix dates
This commit is contained in:
72
dashboard/server/api/integrations/github/oauth2/callback.ts
Normal file
72
dashboard/server/api/integrations/github/oauth2/callback.ts
Normal file
@@ -0,0 +1,72 @@
|
||||
|
||||
import { createUserJwt } from '~/server/AuthManager';
|
||||
import { UserModel } from '@schema/UserSchema';
|
||||
import EmailService from '@services/EmailService';
|
||||
|
||||
const config = useRuntimeConfig();
|
||||
|
||||
export default defineEventHandler(async event => {
|
||||
|
||||
const { code } = getQuery(event);
|
||||
console.log('CODE', code);
|
||||
|
||||
const redirect_uri = 'http://127.0.0.1:3000'
|
||||
|
||||
const res = await fetch(`https://github.com/login/oauth/access_token?client_id=${config.GITHUB_AUTH_CLIENT_ID}&client_secret=${config.GITHUB_AUTH_CLIENT_SECRET}&code=${code}&redirect_url=${redirect_uri}`, {
|
||||
headers: {
|
||||
"Accept": "application/json",
|
||||
"Accept-Encoding": "application/json",
|
||||
},
|
||||
});
|
||||
|
||||
const data = await res.json();
|
||||
|
||||
const access_token = data.access_token;
|
||||
|
||||
console.log(data);
|
||||
|
||||
return sendRedirect(event,`http://127.0.0.1:3000/login?github_access_token=${access_token}`)
|
||||
|
||||
|
||||
// const origin = event.headers.get('origin');
|
||||
|
||||
// const tokenResponse = await client.getToken({
|
||||
// code: body.code,
|
||||
// redirect_uri: origin || ''
|
||||
// });
|
||||
|
||||
// const tokens = tokenResponse.tokens;
|
||||
|
||||
// const ticket = await client.verifyIdToken({
|
||||
// idToken: tokens.id_token || '',
|
||||
// audience: GOOGLE_AUTH_CLIENT_ID,
|
||||
// });
|
||||
|
||||
// const payload = ticket.getPayload();
|
||||
// if (!payload) return { error: true, access_token: '' };
|
||||
|
||||
|
||||
// const user = await UserModel.findOne({ email: payload.email });
|
||||
|
||||
// if (user) return { error: false, access_token: createUserJwt({ email: user.email, name: user.name }) }
|
||||
|
||||
|
||||
// const newUser = new UserModel({
|
||||
// email: payload.email,
|
||||
// given_name: payload.given_name,
|
||||
// name: payload.name,
|
||||
// locale: payload.locale,
|
||||
// picture: payload.picture,
|
||||
// created_at: Date.now()
|
||||
// });
|
||||
|
||||
// const savedUser = await newUser.save();
|
||||
|
||||
// setImmediate(() => {
|
||||
// console.log('SENDING WELCOME EMAIL TO', payload.email);
|
||||
// if (payload.email) EmailService.sendWelcomeEmail(payload.email);
|
||||
// });
|
||||
|
||||
// return { error: false, access_token: createUserJwt({ email: savedUser.email, name: savedUser.name }) }
|
||||
|
||||
});
|
||||
@@ -2,7 +2,7 @@ import { EventModel } from "@schema/metrics/EventSchema";
|
||||
import { getTimeline } from "./generic";
|
||||
import { Redis, TIMELINE_EXPIRE_TIME } from "~/server/services/CacheService";
|
||||
import { getUserProjectFromId } from "~/server/LIVE_DEMO_DATA";
|
||||
import { executeTimelineAggregation, fillAndMergeTimelineAggregation } from "~/server/services/TimelineService";
|
||||
import { executeTimelineAggregation, fillAndMergeTimelineAggregation, fillAndMergeTimelineAggregationV2 } from "~/server/services/TimelineService";
|
||||
|
||||
export default defineEventHandler(async event => {
|
||||
const project_id = getRequestProjectId(event);
|
||||
@@ -27,7 +27,7 @@ export default defineEventHandler(async event => {
|
||||
model: EventModel,
|
||||
from, to, slice
|
||||
});
|
||||
const timelineFilledMerged = fillAndMergeTimelineAggregation(timelineData, slice);
|
||||
const timelineFilledMerged = fillAndMergeTimelineAggregationV2(timelineData, slice, from, to);
|
||||
return timelineFilledMerged;
|
||||
});
|
||||
|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
import { getTimeline } from "./generic";
|
||||
import { VisitModel } from "@schema/metrics/VisitSchema";
|
||||
import DateService from "@services/DateService";
|
||||
import { Redis, TIMELINE_EXPIRE_TIME } from "~/server/services/CacheService";
|
||||
import { getUserProjectFromId } from "~/server/LIVE_DEMO_DATA";
|
||||
import { executeAdvancedTimelineAggregation, fillAndMergeTimelineAggregation } from "~/server/services/TimelineService";
|
||||
import { executeAdvancedTimelineAggregation, fillAndMergeTimelineAggregationV2 } from "~/server/services/TimelineService";
|
||||
|
||||
export default defineEventHandler(async event => {
|
||||
const project_id = getRequestProjectId(event);
|
||||
@@ -31,7 +29,7 @@ export default defineEventHandler(async event => {
|
||||
referrer
|
||||
}
|
||||
});
|
||||
const timelineFilledMerged = fillAndMergeTimelineAggregation(timelineData, slice);
|
||||
const timelineFilledMerged = fillAndMergeTimelineAggregationV2(timelineData, slice, from, to);
|
||||
return timelineFilledMerged;
|
||||
});
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@ import { getTimeline } from "./generic";
|
||||
import { Redis, TIMELINE_EXPIRE_TIME } from "~/server/services/CacheService";
|
||||
import { getUserProjectFromId } from "~/server/LIVE_DEMO_DATA";
|
||||
import { SessionModel } from "@schema/metrics/SessionSchema";
|
||||
import { executeTimelineAggregation, fillAndMergeTimelineAggregation } from "~/server/services/TimelineService";
|
||||
import { executeTimelineAggregation, fillAndMergeTimelineAggregationV2 } from "~/server/services/TimelineService";
|
||||
|
||||
export default defineEventHandler(async event => {
|
||||
const project_id = getRequestProjectId(event);
|
||||
@@ -28,7 +28,7 @@ export default defineEventHandler(async event => {
|
||||
model: SessionModel,
|
||||
from, to, slice
|
||||
});
|
||||
const timelineFilledMerged = fillAndMergeTimelineAggregation(timelineData, slice);
|
||||
const timelineFilledMerged = fillAndMergeTimelineAggregationV2(timelineData, slice, from, to);
|
||||
return timelineFilledMerged;
|
||||
});
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@ import { getTimeline } from "./generic";
|
||||
import { Redis, TIMELINE_EXPIRE_TIME } from "~/server/services/CacheService";
|
||||
import { getUserProjectFromId } from "~/server/LIVE_DEMO_DATA";
|
||||
import { SessionModel } from "@schema/metrics/SessionSchema";
|
||||
import { executeAdvancedTimelineAggregation, executeTimelineAggregation, fillAndMergeTimelineAggregation } from "~/server/services/TimelineService";
|
||||
import { executeAdvancedTimelineAggregation, fillAndMergeTimelineAggregationV2 } from "~/server/services/TimelineService";
|
||||
|
||||
export default defineEventHandler(async event => {
|
||||
const project_id = getRequestProjectId(event);
|
||||
@@ -45,7 +45,7 @@ export default defineEventHandler(async event => {
|
||||
count: { $divide: ["$duration", "$count"] }
|
||||
},
|
||||
});
|
||||
const timelineFilledMerged = fillAndMergeTimelineAggregation(timelineData, slice);
|
||||
const timelineFilledMerged = fillAndMergeTimelineAggregationV2(timelineData, slice, from ,to);
|
||||
return timelineFilledMerged;
|
||||
});
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@ import { VisitModel } from "@schema/metrics/VisitSchema";
|
||||
import { Redis, TIMELINE_EXPIRE_TIME } from "~/server/services/CacheService";
|
||||
import { getUserProjectFromId } from "~/server/LIVE_DEMO_DATA";
|
||||
import DateService from "@services/DateService";
|
||||
import { executeTimelineAggregation, fillAndMergeTimelineAggregation } from "~/server/services/TimelineService";
|
||||
import { executeTimelineAggregation, fillAndMergeTimelineAggregationV2 } from "~/server/services/TimelineService";
|
||||
|
||||
export default defineEventHandler(async event => {
|
||||
const project_id = getRequestProjectId(event);
|
||||
@@ -28,11 +28,9 @@ export default defineEventHandler(async event => {
|
||||
model: VisitModel,
|
||||
from, to, slice,
|
||||
});
|
||||
const timelineFilledMerged = fillAndMergeTimelineAggregation(timelineData, slice);
|
||||
const timelineFilledMerged = fillAndMergeTimelineAggregationV2(timelineData, slice, from, to);
|
||||
return timelineFilledMerged;
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
});
|
||||
@@ -61,4 +61,10 @@ export function fillAndMergeTimelineAggregation(timeline: { _id: string, count:
|
||||
const filledDates = DateService.fillDates(timeline.map(e => e._id), slice);
|
||||
const merged = DateService.mergeFilledDates(filledDates, timeline, '_id', slice, { count: 0 });
|
||||
return merged;
|
||||
}
|
||||
|
||||
export function fillAndMergeTimelineAggregationV2(timeline: { _id: string, count: number }[], slice: Slice, from: string, to: string) {
|
||||
const filledDates = DateService.createBetweenDates(from, to, slice);
|
||||
const merged = DateService.mergeFilledDates(filledDates.dates, timeline, '_id', slice, { count: 0 });
|
||||
return merged;
|
||||
}
|
||||
Reference in New Issue
Block a user