Skip to content

Instantly share code, notes, and snippets.

View Avi-E-Koenig's full-sized avatar
🎯
Focusing

Avi E. Koenig Avi-E-Koenig

🎯
Focusing
View GitHub Profile
@Avi-E-Koenig
Avi-E-Koenig / auth-is-admin.middleware.js
Created March 7, 2023 19:00
Next js generic authMiddleware
import {NextApiRequest, NextApiResponse} from 'next'
import jwt from 'jsonwebtoken'
type Handler = (req: NextApiRequest, res: NextApiResponse) => Promise<any>
const checkAuthMiddleware = (handler: Handler) =>
async function (req: NextApiRequest, res: NextApiResponse): Promise<any> {
try {
// Check if the Authorization header exists and extract the token value
const authHeader = req.headers['authorization']
@Avi-E-Koenig
Avi-E-Koenig / image.api.js
Last active March 7, 2023 19:06
Next.js Image Handler
import {COLLECTIONS} from '@/const'
import {NextApiRequest, NextApiResponse} from 'next'
import fs from 'fs/promises'
import formidable, {Fields, File, Files} from 'formidable'
import path from 'path'
import checkAuthMiddleware from '../../../backend/middleware/checkIsAdmin'
import {v4 as uuid} from 'uuid'
const IMAGE_DIRECTORY = './public/assets/images/'
const ACCEPTED_FILE_TYPES = ['jpg', 'png']
@Avi-E-Koenig
Avi-E-Koenig / CloudinaryCrud.ts
Created March 14, 2023 14:00
basic cloudinary crud
import cloudinary from 'cloudinary';
import fs from 'fs';
import { CLOUDINARY_API_KEY, CLOUDINARY_API_SECRET, CLOUDINARY_CLOUD_NAME } from '@/config';
cloudinary.v2.config({
cloud_name: CLOUDINARY_CLOUD_NAME,
api_key: CLOUDINARY_API_KEY,
api_secret: CLOUDINARY_API_SECRET,
});
@Avi-E-Koenig
Avi-E-Koenig / experiment.js
Created March 21, 2023 12:14
some chatgpt fun
const { errMessage } = require('../errController');
const Event = require('./event.model');
const Setting = require('./setting.model');
const aggregateQueryOld = [
{
$match: {
$expr: {
$and: [
{ $isArray: '$targetAudience' },
@Avi-E-Koenig
Avi-E-Koenig / useLocaleTimeAgo.ts
Created March 22, 2023 15:08
useTimeAgo composable for Vue3
import AppLogger from '@/services/AppLogger'
import type { UseTimeAgoMessages, UseTimeAgoUnitNamesDefault } from '@vueuse/core'
import { useI18n } from 'vue-i18n'
import { useTimeAgo } from '@vueuse/core'
const messages = {
en: {
common: {
timeAgo: {
'just-now': 'just now',
@Avi-E-Koenig
Avi-E-Koenig / GenericBreadcrumbs.tsx
Created May 21, 2023 13:57
Dynamic React Mui Breadcrumbs
import { Breadcrumbs, Link as MuiLink, Typography } from '@mui/material';
import { Link } from 'react-router-dom';
import { useEffect, useState } from 'react';
import { useLocation } from 'react-router-dom';
type BreadCrumbSegment = { path: string; name: string };
function BreadCrumbs() {
const location = useLocation();
@Avi-E-Koenig
Avi-E-Koenig / file.vue
Created November 9, 2023 11:50
Vue Snippet work
<template>
<v-container class="new-mone" v-if="formSchema">
<v-row>
<v-col>
<h1>
{{ formName }}
</h1>
</v-col>
</v-row>
<v-row>
@Avi-E-Koenig
Avi-E-Koenig / Monday_API
Last active November 21, 2023 04:15
Get Volunteers
{
"info": {
"_postman_id": "4ff3f646-3ee3-4227-b941-4a1467b9a478",
"name": "Monday_API",
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
"_exporter_id": "3883128"
},
"item": [
{
"name": "Get Volunteer list",
import puppeteer from 'puppeteer';
import sharp from 'sharp';
import logger from '../../services/logger.js';
import PDFDocument from 'pdfkit';
import { promisify } from 'util';
import fs from 'fs';
import { Recipe } from 'muhammara';
export async function convertToPdf(url, pdfOptions = {}) {
const browser = await puppeteer.launch();
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"command": "npm run start:dev",
"name": "Run Server",
"request": "launch",