merge test #1
139 changed files with 7224 additions and 460 deletions
4
.expo/prebuild/cached-packages.json
Normal file
4
.expo/prebuild/cached-packages.json
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"dependencies": "c63a16a85154f1ea03750b1df53dcdee0200585f",
|
||||
"devDependencies": "0a1ec1c6df1c9d5100926df058dd0824b1293819"
|
||||
}
|
||||
6
app.json
6
app.json
|
|
@ -1,3 +1,7 @@
|
|||
{
|
||||
"expo": {}
|
||||
"expo": {
|
||||
"ios": {
|
||||
"bundleIdentifier": "com.mohammedshafiuddin54.meat-farmer-monorepo"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
"dependencies": "091948e86692e0cce7744b6b0543448538c3125a",
|
||||
"dependencies": "4650ceb7c30aaa4d5fd17b9577e186af7a84b50d",
|
||||
"devDependencies": "b3b38265f32b99a8299270a292f38ca26288d53d"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@ interface MenuItem {
|
|||
iconBg?: string;
|
||||
badgeCount?: number;
|
||||
onPress?: () => void;
|
||||
testID?: string;
|
||||
}
|
||||
|
||||
interface MenuItemComponentProps {
|
||||
|
|
@ -100,6 +101,7 @@ export default function Dashboard() {
|
|||
category: 'quick',
|
||||
iconColor: '#06B6D4',
|
||||
iconBg: '#CFFAFE',
|
||||
testID: 'delivery-slots-menu-item',
|
||||
},
|
||||
{
|
||||
title: 'Add Product',
|
||||
|
|
@ -245,6 +247,8 @@ export default function Dashboard() {
|
|||
{quickActions.map((item) => (
|
||||
<Pressable
|
||||
key={`quick-${item.route}`}
|
||||
testID={item.testID}
|
||||
accessibilityLabel={item.testID}
|
||||
onPress={() => item.onPress ? item.onPress() : router.push(item.route as any)}
|
||||
style={({ pressed }) => [
|
||||
tw`bg-white rounded-xl p-3 shadow-sm border border-gray-100 items-center`,
|
||||
|
|
|
|||
|
|
@ -275,6 +275,8 @@ export default function Slots() {
|
|||
|
||||
{/* FAB for Add New Slot */}
|
||||
<MyTouchableOpacity
|
||||
testID="add-slot-fab"
|
||||
accessibilityLabel="add-slot-fab"
|
||||
onPress={() => router.push('/slots/add' as any)}
|
||||
activeOpacity={0.95}
|
||||
style={{ position: 'absolute', bottom: 32, right: 24, zIndex: 100 }}
|
||||
|
|
|
|||
|
|
@ -11,7 +11,11 @@ export default function Layout() {
|
|||
<QueryClientProvider client={queryClient}>
|
||||
<trpc.Provider client={trpcClient} queryClient={queryClient}>
|
||||
<StaffAuthProvider>
|
||||
<SafeAreaView edges={['left', 'right', 'bottom']} style={{ flex: 1, backgroundColor: '#fff' }}>
|
||||
<SafeAreaView
|
||||
edges={['left', 'right', 'bottom']}
|
||||
style={{ flex: 1, backgroundColor: '#fff' }}
|
||||
testID="app-root"
|
||||
>
|
||||
<RefreshProvider queryClient={queryClient}>
|
||||
<Stack screenOptions={{ headerShown: false }} />
|
||||
</RefreshProvider>
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@ export default function LoginScreen() {
|
|||
}
|
||||
};
|
||||
|
||||
console.log('from the login page')
|
||||
|
||||
|
||||
return (
|
||||
|
|
@ -52,6 +51,8 @@ export default function LoginScreen() {
|
|||
autoCapitalize="none"
|
||||
autoCorrect={false}
|
||||
style={{ marginBottom: 20 }}
|
||||
testID="login-name-input"
|
||||
accessibilityLabel="login-name-input"
|
||||
/>
|
||||
|
||||
<MyTextInput
|
||||
|
|
@ -63,6 +64,8 @@ export default function LoginScreen() {
|
|||
autoCapitalize="none"
|
||||
autoCorrect={false}
|
||||
style={{ marginBottom: 30 }}
|
||||
testID="login-password-input"
|
||||
accessibilityLabel="login-password-input"
|
||||
/>
|
||||
|
||||
{loginError && (
|
||||
|
|
@ -84,6 +87,8 @@ export default function LoginScreen() {
|
|||
disabled={isLoggingIn}
|
||||
fullWidth
|
||||
style={{ marginBottom: 20 }}
|
||||
testID="login-button"
|
||||
accessibilityLabel="login-button"
|
||||
/>
|
||||
</View>
|
||||
</AppContainer>
|
||||
|
|
|
|||
|
|
@ -147,6 +147,7 @@ export default function ProductsSelector({
|
|||
{showGroups && groups.length > 0 && (
|
||||
<View style={tw`mb-4`}>
|
||||
<BottomDropdown
|
||||
testID="product-groups-dropdown"
|
||||
label="Select Product Groups"
|
||||
options={groupOptions}
|
||||
value={selectedGroupIds.map(id => id.toString())}
|
||||
|
|
|
|||
|
|
@ -148,12 +148,22 @@ export default function SlotForm({
|
|||
|
||||
<View style={tw`mb-4`}>
|
||||
<Text style={tw`text-lg font-semibold mb-2`}>Delivery Date & Time</Text>
|
||||
<DateTimePickerMod value={values.deliveryTime} setValue={(value) => setFieldValue('deliveryTime', value)} />
|
||||
<DateTimePickerMod
|
||||
dateTestID="delivery-date-picker"
|
||||
timeTestID="delivery-time-picker"
|
||||
value={values.deliveryTime}
|
||||
setValue={(value) => setFieldValue('deliveryTime', value)}
|
||||
/>
|
||||
</View>
|
||||
|
||||
<View style={tw`mb-4`}>
|
||||
<Text style={tw`text-lg font-semibold mb-2`}>Freeze Date & Time</Text>
|
||||
<DateTimePickerMod value={values.freezeTime} setValue={(value) => setFieldValue('freezeTime', value)} />
|
||||
<DateTimePickerMod
|
||||
dateTestID="freeze-date-picker"
|
||||
timeTestID="freeze-time-picker"
|
||||
value={values.freezeTime}
|
||||
setValue={(value) => setFieldValue('freezeTime', value)}
|
||||
/>
|
||||
</View>
|
||||
|
||||
<View style={tw`mb-4`}>
|
||||
|
|
@ -220,6 +230,8 @@ export default function SlotForm({
|
|||
</FieldArray>
|
||||
|
||||
<TouchableOpacity
|
||||
testID="create-slot-button"
|
||||
accessibilityLabel="create-slot-button"
|
||||
onPress={() => handleSubmit()}
|
||||
disabled={isPending}
|
||||
style={tw`${isPending ? 'bg-pink2' : 'bg-pink1'} p-3 rounded-lg items-center mt-6 pb-4`}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import { createTRPCProxyClient, httpBatchLink, TRPCClientError } from '@trpc/client';
|
||||
import { createTRPCReact } from '@trpc/react-query';
|
||||
import {AppRouter} from '../../backend/src/trpc/router'
|
||||
import { AppRouter } from '@backend/trpc/router'
|
||||
import { BASE_API_URL } from 'common-ui';
|
||||
import { getJWT } from '@/hooks/useJWT';
|
||||
import { FORCE_LOGOUT_EVENT } from 'common-ui/src/lib/const-strs';
|
||||
|
|
|
|||
|
|
@ -4,7 +4,11 @@
|
|||
"strict": true,
|
||||
"paths": {
|
||||
"@/*": [
|
||||
"./*"
|
||||
"./*",
|
||||
"../backend/*"
|
||||
],
|
||||
"@backend/*": [
|
||||
"../backend/src/*"
|
||||
],
|
||||
"shared-types": ["../shared-types"],
|
||||
"common-ui": ["../../packages/ui"],
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -5,19 +5,19 @@ import cors from "cors";
|
|||
import multer from "multer";
|
||||
import path from "path";
|
||||
import fs from "fs";
|
||||
import { db } from './src/db/db_index';
|
||||
import { staffUsers, userDetails } from './src/db/schema';
|
||||
import { db } from '@/src/db/db_index';
|
||||
import { staffUsers, userDetails } from '@/src/db/schema';
|
||||
import { eq } from 'drizzle-orm';
|
||||
import mainRouter from './src/main-router';
|
||||
import initFunc from './src/lib/init';
|
||||
import mainRouter from '@/src/main-router';
|
||||
import initFunc from '@/src/lib/init';
|
||||
import { createExpressMiddleware } from '@trpc/server/adapters/express';
|
||||
import { appRouter } from './src/trpc/router';
|
||||
import { appRouter } from '@/src/trpc/router';
|
||||
import { TRPCError } from '@trpc/server';
|
||||
import jwt from 'jsonwebtoken'
|
||||
import signedUrlCache from 'src/lib/signed-url-cache';
|
||||
import { seed } from 'src/db/seed';
|
||||
import './src/jobs/jobs-index';
|
||||
import { startAutomatedJobs } from './src/lib/automatedJobs';
|
||||
import signedUrlCache from '@/src/lib/signed-url-cache';
|
||||
import { seed } from '@/src/db/seed';
|
||||
import '@/src/jobs/jobs-index';
|
||||
import { startAutomatedJobs } from '@/src/lib/automatedJobs';
|
||||
|
||||
seed()
|
||||
initFunc()
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1",
|
||||
"migrate": "drizzle-kit generate:pg",
|
||||
"build": "rimraf ./dist && tsc --project tsconfig.json",
|
||||
"build": "rimraf ./dist && tsc --project tsconfig.json && tsc-alias -p tsconfig.json",
|
||||
"build2": "rimraf ./dist && tsc",
|
||||
"db:push": "drizzle-kit push:pg",
|
||||
"db:seed": "tsx src/db/seed.ts",
|
||||
|
|
@ -55,6 +55,7 @@
|
|||
"rimraf": "^6.1.2",
|
||||
"ts-node-dev": "^2.0.0",
|
||||
"tsx": "^4.20.5",
|
||||
"tsc-alias": "^1.8.16",
|
||||
"typescript": "^5.9.2"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import { Router } from "express";
|
||||
import { authenticateStaff } from "../middleware/staff-auth";
|
||||
import productRouter from "./product.router";
|
||||
import tagRouter from "./tag.router";
|
||||
import { authenticateStaff } from "@/src/middleware/staff-auth";
|
||||
import productRouter from "@/src/apis/admin-apis/apis/product.router"
|
||||
import tagRouter from "@/src/apis/admin-apis/apis/tag.router"
|
||||
|
||||
const router = Router();
|
||||
|
||||
|
|
@ -1,11 +1,11 @@
|
|||
import { Request, Response } from "express";
|
||||
import { db } from "../db/db_index";
|
||||
import { productTagInfo } from "../db/schema";
|
||||
import { db } from "@/src/db/db_index";
|
||||
import { productTagInfo } from "@/src/db/schema";
|
||||
import { eq } from "drizzle-orm";
|
||||
import { ApiError } from "../lib/api-error";
|
||||
import { imageUploadS3, generateSignedUrlFromS3Url } from "../lib/s3-client";
|
||||
import { deleteS3Image } from "../lib/delete-image";
|
||||
import { initializeAllStores } from '../stores/store-initializer';
|
||||
import { ApiError } from "@/src/lib/api-error";
|
||||
import { imageUploadS3, generateSignedUrlFromS3Url } from "@/src/lib/s3-client";
|
||||
import { deleteS3Image } from "@/src/lib/delete-image";
|
||||
import { initializeAllStores } from '@/src/stores/store-initializer';
|
||||
|
||||
/**
|
||||
* Create a new product tag
|
||||
|
|
@ -1,12 +1,12 @@
|
|||
import { Request, Response } from "express";
|
||||
import { db } from "../db/db_index";
|
||||
import { productInfo, units, specialDeals, productTags } from "../db/schema";
|
||||
import { db } from "@/src/db/db_index";
|
||||
import { productInfo, units, specialDeals, productTags } from "@/src/db/schema";
|
||||
import { eq, inArray } from "drizzle-orm";
|
||||
import { ApiError } from "../lib/api-error";
|
||||
import { imageUploadS3, getOriginalUrlFromSignedUrl } from "../lib/s3-client";
|
||||
import { deleteS3Image } from "../lib/delete-image";
|
||||
import type { SpecialDeal } from "../db/types";
|
||||
import { initializeAllStores } from '../stores/store-initializer';
|
||||
import { ApiError } from "@/src/lib/api-error";
|
||||
import { imageUploadS3, getOriginalUrlFromSignedUrl } from "@/src/lib/s3-client";
|
||||
import { deleteS3Image } from "@/src/lib/delete-image";
|
||||
import type { SpecialDeal } from "@/src/db/types";
|
||||
import { initializeAllStores } from '@/src/stores/store-initializer';
|
||||
|
||||
type CreateDeal = {
|
||||
quantity: number;
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
import { Router } from "express";
|
||||
import { createProduct, updateProduct } from "./product.controller";
|
||||
import uploadHandler from '../lib/upload-handler';
|
||||
import { createProduct, updateProduct } from "@/src/apis/admin-apis/apis/product.controller"
|
||||
import uploadHandler from '@/src/lib/upload-handler';
|
||||
|
||||
const router = Router();
|
||||
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
import { Router } from "express";
|
||||
import { createTag, getAllTags, getTagById, updateTag, deleteTag } from "./product-tags.controller";
|
||||
import uploadHandler from '../lib/upload-handler';
|
||||
import { createTag, getAllTags, getTagById, updateTag, deleteTag } from "@/src/apis/admin-apis/apis/product-tags.controller"
|
||||
import uploadHandler from '@/src/lib/upload-handler';
|
||||
|
||||
const router = Router();
|
||||
|
||||
0
apps/backend/src/apis/admin-apis/dataAccessors/demo.txt
Normal file
0
apps/backend/src/apis/admin-apis/dataAccessors/demo.txt
Normal file
|
|
@ -1,8 +1,8 @@
|
|||
import { eq, gt, and, sql, inArray } from "drizzle-orm";
|
||||
import { Request, Response } from "express";
|
||||
import { db } from "../db/db_index";
|
||||
import { productInfo, units, productSlots, deliverySlotInfo, productTags } from "../db/schema";
|
||||
import { scaffoldAssetUrl } from "../lib/s3-client";
|
||||
import { db } from "@/src/db/db_index"
|
||||
import { productInfo, units, productSlots, deliverySlotInfo, productTags } from "@/src/db/schema"
|
||||
import { scaffoldAssetUrl } from "@/src/lib/s3-client"
|
||||
|
||||
/**
|
||||
* Get next delivery date for a product
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
import { Router } from "express";
|
||||
import { getAllProductsSummary } from "./common-product.controller";
|
||||
import { getAllProductsSummary } from "@/src/apis/common-apis/apis/common-product.controller"
|
||||
|
||||
const router = Router();
|
||||
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
import { Router } from "express";
|
||||
import commonProductsRouter from "./common-product.router";
|
||||
import commonProductsRouter from "@/src/apis/common-apis/apis/common-product.router"
|
||||
|
||||
const router = Router();
|
||||
|
||||
0
apps/backend/src/apis/common-apis/dataAccessors/demo.txt
Normal file
0
apps/backend/src/apis/common-apis/dataAccessors/demo.txt
Normal file
|
|
@ -1,7 +1,7 @@
|
|||
import { drizzle } from "drizzle-orm/node-postgres"
|
||||
import { migrate } from "drizzle-orm/node-postgres/migrator"
|
||||
import path from "path"
|
||||
import * as schema from "./schema"
|
||||
import * as schema from "@/src/db/schema"
|
||||
|
||||
const db = drizzle({ connection: process.env.DATABASE_URL!, casing: "snake_case", schema: schema })
|
||||
// const db = drizzle('postgresql://postgres:postgres@localhost:2345/pooler');
|
||||
|
|
|
|||
|
|
@ -2,13 +2,13 @@
|
|||
* This was a one time script to change the composition of the signed urls
|
||||
*/
|
||||
|
||||
import { db } from './db_index';
|
||||
import { db } from '@/src/db/db_index'
|
||||
import {
|
||||
userDetails,
|
||||
productInfo,
|
||||
productTagInfo,
|
||||
complaints
|
||||
} from './schema';
|
||||
} from '@/src/db/schema';
|
||||
import { eq, not, isNull } from 'drizzle-orm';
|
||||
|
||||
const S3_DOMAIN = 'https://s3.sgp.io.cloud.ovh.net';
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
import { db } from "./db_index";
|
||||
import { units, productInfo, deliverySlotInfo, productSlots, keyValStore, staffRoles, staffPermissions, staffRolePermissions } from "./schema";
|
||||
import { db } from "@/src/db/db_index"
|
||||
import { units, productInfo, deliverySlotInfo, productSlots, keyValStore, staffRoles, staffPermissions, staffRolePermissions } from "@/src/db/schema"
|
||||
import { eq } from "drizzle-orm";
|
||||
import { minOrderValue, deliveryCharge } from '../lib/env-exporter';
|
||||
import { CONST_KEYS } from '../lib/const-keys';
|
||||
import { minOrderValue, deliveryCharge } from '@/src/lib/env-exporter'
|
||||
import { CONST_KEYS } from '@/src/lib/const-keys'
|
||||
|
||||
export async function seed() {
|
||||
console.log("Seeding database...");
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ import type {
|
|||
productCategories,
|
||||
cartItems,
|
||||
coupons,
|
||||
} from "./schema";
|
||||
} from "@/src/db/schema";
|
||||
|
||||
export type User = InferSelectModel<typeof users>;
|
||||
export type Address = InferSelectModel<typeof addresses>;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import * as cron from 'node-cron';
|
||||
import { checkPendingPayments, checkRefundStatuses } from './payment-status-checker';
|
||||
import { checkPendingPayments, checkRefundStatuses } from '@/src/jobs/payment-status-checker'
|
||||
|
||||
const runCombinedJob = async () => {
|
||||
const start = Date.now();
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
import * as cron from 'node-cron';
|
||||
import { db } from '../db/db_index';
|
||||
import { payments, orders, deliverySlotInfo, refunds } from '../db/schema';
|
||||
import { db } from '@/src/db/db_index'
|
||||
import { payments, orders, deliverySlotInfo, refunds } from '@/src/db/schema'
|
||||
import { eq, and, gt, isNotNull } from 'drizzle-orm';
|
||||
import { RazorpayPaymentService } from '../lib/payments-utils';
|
||||
import { RazorpayPaymentService } from '@/src/lib/payments-utils'
|
||||
|
||||
interface PendingPaymentRecord {
|
||||
payment: typeof payments.$inferSelect;
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
import * as cron from 'node-cron';
|
||||
import { db } from '../db/db_index';
|
||||
import { productInfo, keyValStore } from '../db/schema';
|
||||
import { db } from '@/src/db/db_index'
|
||||
import { productInfo, keyValStore } from '@/src/db/schema'
|
||||
import { inArray, eq } from 'drizzle-orm';
|
||||
import { CONST_KEYS } from '../lib/const-keys';
|
||||
import { computeConstants } from '../lib/const-store';
|
||||
import { CONST_KEYS } from '@/src/lib/const-keys'
|
||||
import { computeConstants } from '@/src/lib/const-store'
|
||||
|
||||
|
||||
const MUTTON_ITEMS = [
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import axiosParent from "axios";
|
||||
import { phonePeBaseUrl } from "./env-exporter";
|
||||
import { phonePeBaseUrl } from "@/src/lib/env-exporter"
|
||||
|
||||
export const phonepeAxios = axiosParent.create({
|
||||
baseURL: phonePeBaseUrl,
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import { db } from '../db/db_index';
|
||||
import { keyValStore } from '../db/schema';
|
||||
import redisClient from './redis-client';
|
||||
import { CONST_KEYS, CONST_KEYS_ARRAY, type ConstKey } from './const-keys';
|
||||
import { db } from '@/src/db/db_index'
|
||||
import { keyValStore } from '@/src/db/schema'
|
||||
import redisClient from '@/src/lib/redis-client'
|
||||
import { CONST_KEYS, CONST_KEYS_ARRAY, type ConstKey } from '@/src/lib/const-keys'
|
||||
|
||||
const CONST_REDIS_PREFIX = 'const:';
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import { eq } from "drizzle-orm";
|
||||
import { db } from "../db/db_index";
|
||||
import { deleteImageUtil, getOriginalUrlFromSignedUrl } from "./s3-client";
|
||||
import { s3Url } from "./env-exporter";
|
||||
import { db } from "@/src/db/db_index"
|
||||
import { deleteImageUtil, getOriginalUrlFromSignedUrl } from "@/src/lib/s3-client"
|
||||
import { s3Url } from "@/src/lib/env-exporter"
|
||||
|
||||
function extractS3Key(url: string): string | null {
|
||||
try {
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import { db } from '../db/db_index';
|
||||
import { orders, orderItems, orderStatus, payments, refunds, couponUsage, complaints } from '../db/schema';
|
||||
import { db } from '@/src/db/db_index'
|
||||
import { orders, orderItems, orderStatus, payments, refunds, couponUsage, complaints } from '@/src/db/schema'
|
||||
import { eq, inArray } from 'drizzle-orm';
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import redisClient from './redis-client';
|
||||
import redisClient from '@/src/lib/redis-client'
|
||||
|
||||
export async function enqueue(queueName: string, eventData: any): Promise<boolean> {
|
||||
try {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import { Expo } from "expo-server-sdk";
|
||||
import { title } from "process";
|
||||
import { expoAccessToken } from "./env-exporter";
|
||||
import { expoAccessToken } from "@/src/lib/env-exporter"
|
||||
|
||||
const expo = new Expo({
|
||||
accessToken: expoAccessToken,
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
import './notif-job';
|
||||
import { initializeAllStores } from '../stores/store-initializer';
|
||||
import { initializeUserNegativityStore } from '../stores/user-negativity-store';
|
||||
import { startOrderHandler, startCancellationHandler, publishOrder } from './post-order-handler';
|
||||
import { deleteOrders } from './delete-orders';
|
||||
import '@/src/lib/notif-job'
|
||||
import { initializeAllStores } from '@/src/stores/store-initializer'
|
||||
import { initializeUserNegativityStore } from '@/src/stores/user-negativity-store'
|
||||
import { startOrderHandler, startCancellationHandler, publishOrder } from '@/src/lib/post-order-handler'
|
||||
import { deleteOrders } from '@/src/lib/delete-orders'
|
||||
|
||||
/**
|
||||
* Initialize all application services
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
import { Queue, Worker } from 'bullmq';
|
||||
import { Expo } from 'expo-server-sdk';
|
||||
import { redisUrl } from './env-exporter';
|
||||
import { db } from '../db/db_index';
|
||||
import { generateSignedUrlFromS3Url } from './s3-client';
|
||||
import { redisUrl } from '@/src/lib/env-exporter'
|
||||
import { db } from '@/src/db/db_index'
|
||||
import { generateSignedUrlFromS3Url } from '@/src/lib/s3-client'
|
||||
import {
|
||||
NOTIFS_QUEUE,
|
||||
ORDER_PLACED_MESSAGE,
|
||||
|
|
@ -12,7 +12,7 @@ import {
|
|||
ORDER_DELIVERED_MESSAGE,
|
||||
ORDER_CANCELLED_MESSAGE,
|
||||
REFUND_INITIATED_MESSAGE
|
||||
} from './const-strings';
|
||||
} from '@/src/lib/const-strings';
|
||||
|
||||
export const notificationQueue = new Queue(NOTIFS_QUEUE, {
|
||||
connection: { url: redisUrl },
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import { db } from "../db/db_index";
|
||||
import { sendPushNotificationsMany } from "./expo-service";
|
||||
// import { usersTable, notifCredsTable, notificationTable } from "../db/schema";
|
||||
import { db } from "@/src/db/db_index"
|
||||
import { sendPushNotificationsMany } from "@/src/lib/expo-service"
|
||||
// import { usersTable, notifCredsTable, notificationTable } from "@/src/db/schema";
|
||||
import { eq, inArray } from "drizzle-orm";
|
||||
|
||||
// Core notification dispatch methods (renamed for clarity)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import { ApiError } from './api-error';
|
||||
import { otpSenderAuthToken } from './env-exporter';
|
||||
import { ApiError } from '@/src/lib/api-error'
|
||||
import { otpSenderAuthToken } from '@/src/lib/env-exporter'
|
||||
|
||||
const otpStore = new Map<string, string>();
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import Razorpay from "razorpay";
|
||||
import { razorpayId, razorpaySecret } from "./env-exporter";
|
||||
import { db } from "../db/db_index";
|
||||
import { payments } from "../db/schema";
|
||||
import { razorpayId, razorpaySecret } from "@/src/lib/env-exporter"
|
||||
import { db } from "@/src/db/db_index"
|
||||
import { payments } from "@/src/db/schema"
|
||||
|
||||
type Tx = Parameters<Parameters<typeof db.transaction>[0]>[0];
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import { db } from '../db/db_index';
|
||||
import { orders, orderStatus } from '../db/schema';
|
||||
import redisClient from './redis-client';
|
||||
import { sendTelegramMessage } from './telegram-service';
|
||||
import { db } from '@/src/db/db_index'
|
||||
import { orders, orderStatus } from '@/src/db/schema'
|
||||
import redisClient from '@/src/lib/redis-client'
|
||||
import { sendTelegramMessage } from '@/src/lib/telegram-service'
|
||||
import { inArray, eq } from 'drizzle-orm';
|
||||
|
||||
const ORDER_CHANNEL = 'orders:placed';
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import { createClient, RedisClientType } from 'redis';
|
||||
import { redisUrl } from './env-exporter';
|
||||
import { redisUrl } from '@/src/lib/env-exporter'
|
||||
|
||||
class RedisClient {
|
||||
private client: RedisClientType;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import { db } from "../db/db_index";
|
||||
import { db } from "@/src/db/db_index"
|
||||
|
||||
/**
|
||||
* Constants for role names to avoid hardcoding and typos
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
// import { s3A, awsBucketName, awsRegion, awsSecretAccessKey } from "../lib/env-exporter"
|
||||
// import { s3A, awsBucketName, awsRegion, awsSecretAccessKey } from "@/src/lib/env-exporter"
|
||||
import { DeleteObjectCommand, DeleteObjectsCommand, PutObjectCommand, S3Client, GetObjectCommand } from "@aws-sdk/client-s3"
|
||||
import { getSignedUrl } from "@aws-sdk/s3-request-presigner"
|
||||
import signedUrlCache from "./signed-url-cache"
|
||||
import { s3AccessKeyId, s3Region, s3Url, s3SecretAccessKey, s3BucketName, assetsDomain } from "./env-exporter";
|
||||
import { db } from "../db/db_index"; // Adjust path if needed
|
||||
import { uploadUrlStatus } from "../db/schema";
|
||||
import signedUrlCache from "@/src/lib/signed-url-cache"
|
||||
import { s3AccessKeyId, s3Region, s3Url, s3SecretAccessKey, s3BucketName, assetsDomain } from "@/src/lib/env-exporter"
|
||||
import { db } from "@/src/db/db_index"; // Adjust path if needed
|
||||
import { uploadUrlStatus } from "@/src/db/schema"
|
||||
import { and, eq } from 'drizzle-orm';
|
||||
|
||||
const s3Client = new S3Client({
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import axios from 'axios';
|
||||
import { isDevMode, telegramBotToken, telegramChatIds } from './env-exporter';
|
||||
import { isDevMode, telegramBotToken, telegramChatIds } from '@/src/lib/env-exporter'
|
||||
|
||||
const BOT_TOKEN = telegramBotToken;
|
||||
const CHAT_IDS = telegramChatIds;
|
||||
|
|
|
|||
|
|
@ -1,11 +1,11 @@
|
|||
import { Router, Request, Response, NextFunction } from "express";
|
||||
import avRouter from "./admin-apis/av-router";
|
||||
import { ApiError } from "./lib/api-error";
|
||||
import v1Router from "./v1-router";
|
||||
import testController from "./test-controller";
|
||||
import { authenticateUser } from "./middleware/auth.middleware";
|
||||
import { raiseComplaint } from "./uv-apis/user-rest.controller";
|
||||
import uploadHandler from "./lib/upload-handler";
|
||||
import avRouter from "@/src/apis/admin-apis/apis/av-router"
|
||||
import { ApiError } from "@/src/lib/api-error"
|
||||
import v1Router from "@/src/v1-router"
|
||||
import testController from "@/src/test-controller"
|
||||
import { authenticateUser } from "@/src/middleware/auth.middleware"
|
||||
import { raiseComplaint } from "@/src/uv-apis/user-rest.controller"
|
||||
import uploadHandler from "@/src/lib/upload-handler"
|
||||
|
||||
|
||||
const router = Router();
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
import { Request, Response, NextFunction } from 'express';
|
||||
import jwt from 'jsonwebtoken';
|
||||
import { db } from '../db/db_index';
|
||||
import { staffUsers, userDetails } from '../db/schema';
|
||||
import { db } from '@/src/db/db_index'
|
||||
import { staffUsers, userDetails } from '@/src/db/schema'
|
||||
import { eq } from 'drizzle-orm';
|
||||
import { ApiError } from '../lib/api-error';
|
||||
import { ApiError } from '@/src/lib/api-error'
|
||||
|
||||
interface AuthenticatedRequest extends Request {
|
||||
user?: {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import { Request, Response, NextFunction } from 'express';
|
||||
import jwt from 'jsonwebtoken';
|
||||
import { ApiError } from '../lib/api-error';
|
||||
import { ApiError } from '@/src/lib/api-error'
|
||||
|
||||
// Extend the Request interface to include user property
|
||||
declare global {
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
import { Request, Response, NextFunction } from 'express';
|
||||
import jwt from 'jsonwebtoken';
|
||||
import { db } from '../db/db_index';
|
||||
import { staffUsers } from '../db/schema';
|
||||
import { db } from '@/src/db/db_index'
|
||||
import { staffUsers } from '@/src/db/schema'
|
||||
import { eq } from 'drizzle-orm';
|
||||
import { ApiError } from '../lib/api-error';
|
||||
import { ApiError } from '@/src/lib/api-error'
|
||||
|
||||
// Extend Request interface to include staffUser
|
||||
declare global {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import { db } from '../../db/db_index'
|
||||
import { db } from '@/src/db/db_index'
|
||||
import {
|
||||
orders,
|
||||
orderItems,
|
||||
|
|
@ -13,7 +13,7 @@ import {
|
|||
refunds,
|
||||
units,
|
||||
userDetails,
|
||||
} from '../../db/schema'
|
||||
} from '@/src/db/schema'
|
||||
import { eq, and, inArray, desc, gte } from 'drizzle-orm'
|
||||
|
||||
// ============ User/Auth Queries ============
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import { db } from '../../db/db_index'
|
||||
import { productInfo, units, productSlots, deliverySlotInfo, specialDeals, storeInfo, productReviews, users } from '../../db/schema'
|
||||
import { db } from '@/src/db/db_index'
|
||||
import { productInfo, units, productSlots, deliverySlotInfo, specialDeals, storeInfo, productReviews, users } from '@/src/db/schema'
|
||||
import { eq, and, gt, sql, desc } from 'drizzle-orm'
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -1,9 +1,13 @@
|
|||
// import redisClient from './redis-client';
|
||||
import redisClient from 'src/lib/redis-client';
|
||||
import { db } from '../db/db_index';
|
||||
import { homeBanners } from '../db/schema';
|
||||
// import redisClient from '@/src/stores/redis-client';
|
||||
import redisClient from '@/src/lib/redis-client';
|
||||
import { db } from '@/src/db/db_index'
|
||||
import { homeBanners } from '@/src/db/schema'
|
||||
import { isNotNull, asc } from 'drizzle-orm';
|
||||
import { scaffoldAssetUrl } from 'src/lib/s3-client';
|
||||
import { scaffoldAssetUrl } from '@/src/lib/s3-client';
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// Banner Type (matches getBanners return)
|
||||
interface Banner {
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
// import redisClient from './redis-client';
|
||||
import redisClient from 'src/lib/redis-client';
|
||||
import { db } from '../db/db_index';
|
||||
import { productInfo, units, productSlots, deliverySlotInfo, specialDeals, storeInfo, productTags, productTagInfo } from '../db/schema';
|
||||
// import redisClient from '@/src/stores/redis-client';
|
||||
import redisClient from '@/src/lib/redis-client';
|
||||
import { db } from '@/src/db/db_index'
|
||||
import { productInfo, units, productSlots, deliverySlotInfo, specialDeals, storeInfo, productTags, productTagInfo } from '@/src/db/schema'
|
||||
import { eq, and, gt, sql } from 'drizzle-orm';
|
||||
import { generateSignedUrlsFromS3Urls, scaffoldAssetUrl } from 'src/lib/s3-client';
|
||||
import { generateSignedUrlsFromS3Urls, scaffoldAssetUrl } from '@/src/lib/s3-client';
|
||||
|
||||
// Uniform Product Type (matches getProductDetails return)
|
||||
interface Product {
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
// import redisClient from './redis-client';
|
||||
import redisClient from 'src/lib/redis-client';
|
||||
import { db } from '../db/db_index';
|
||||
import { productTagInfo, productTags } from '../db/schema';
|
||||
// import redisClient from '@/src/stores/redis-client';
|
||||
import redisClient from '@/src/lib/redis-client';
|
||||
import { db } from '@/src/db/db_index'
|
||||
import { productTagInfo, productTags } from '@/src/db/schema'
|
||||
import { eq, inArray } from 'drizzle-orm';
|
||||
import { generateSignedUrlFromS3Url } from 'src/lib/s3-client';
|
||||
import { generateSignedUrlFromS3Url } from '@/src/lib/s3-client';
|
||||
|
||||
// Tag Type (matches getDashboardTags return)
|
||||
interface Tag {
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
import redisClient from 'src/lib/redis-client';
|
||||
import { db } from '../db/db_index';
|
||||
import { deliverySlotInfo, productSlots, productInfo, units } from '../db/schema';
|
||||
import redisClient from '@/src/lib/redis-client';
|
||||
import { db } from '@/src/db/db_index'
|
||||
import { deliverySlotInfo, productSlots, productInfo, units } from '@/src/db/schema'
|
||||
import { eq, and, gt, asc } from 'drizzle-orm';
|
||||
import { generateSignedUrlsFromS3Urls, scaffoldAssetUrl } from 'src/lib/s3-client';
|
||||
import { generateSignedUrlsFromS3Urls, scaffoldAssetUrl } from '@/src/lib/s3-client';
|
||||
import dayjs from 'dayjs';
|
||||
|
||||
// Define the structure for slot with products
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
import roleManager from '../lib/roles-manager';
|
||||
import { computeConstants } from '../lib/const-store';
|
||||
import { initializeProducts } from './product-store';
|
||||
import { initializeProductTagStore } from './product-tag-store';
|
||||
import { initializeSlotStore } from './slot-store';
|
||||
import { initializeBannerStore } from './banner-store';
|
||||
import roleManager from '@/src/lib/roles-manager'
|
||||
import { computeConstants } from '@/src/lib/const-store'
|
||||
import { initializeProducts } from '@/src/stores/product-store'
|
||||
import { initializeProductTagStore } from '@/src/stores/product-tag-store'
|
||||
import { initializeSlotStore } from '@/src/stores/slot-store'
|
||||
import { initializeBannerStore } from '@/src/stores/banner-store'
|
||||
|
||||
/**
|
||||
* Initialize all application stores
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import redisClient from 'src/lib/redis-client';
|
||||
import { db } from '../db/db_index';
|
||||
import { userIncidents } from '../db/schema';
|
||||
import redisClient from '@/src/lib/redis-client';
|
||||
import { db } from '@/src/db/db_index'
|
||||
import { userIncidents } from '@/src/db/schema'
|
||||
import { eq, sum } from 'drizzle-orm';
|
||||
|
||||
export async function initializeUserNegativityStore(): Promise<void> {
|
||||
|
|
|
|||
|
|
@ -1,34 +0,0 @@
|
|||
import { router } from '../trpc-index';
|
||||
import { complaintRouter } from './complaint';
|
||||
import { couponRouter } from './coupon';
|
||||
import { cancelledOrdersRouter } from './cancelled-orders';
|
||||
import { orderRouter } from './order';
|
||||
import { vendorSnippetsRouter } from './vendor-snippets';
|
||||
import { slotsRouter } from './slots';
|
||||
import { productRouter } from './product';
|
||||
import { staffUserRouter } from './staff-user';
|
||||
import { storeRouter } from './store';
|
||||
import { adminPaymentsRouter } from './payments';
|
||||
import addressRouter from './address';
|
||||
import { bannerRouter } from './banner';
|
||||
import { userRouter } from './user';
|
||||
import { constRouter } from './const';
|
||||
|
||||
export const adminRouter = router({
|
||||
complaint: complaintRouter,
|
||||
coupon: couponRouter,
|
||||
cancelledOrders: cancelledOrdersRouter,
|
||||
order: orderRouter,
|
||||
vendorSnippets: vendorSnippetsRouter,
|
||||
slots: slotsRouter,
|
||||
product: productRouter,
|
||||
staffUser: staffUserRouter,
|
||||
store: storeRouter,
|
||||
payments: adminPaymentsRouter,
|
||||
address: addressRouter,
|
||||
banner: bannerRouter,
|
||||
user: userRouter,
|
||||
const: constRouter,
|
||||
});
|
||||
|
||||
export type AdminRouter = typeof adminRouter;
|
||||
|
|
@ -1,8 +1,8 @@
|
|||
import { z } from 'zod';
|
||||
import { addressZones, addressAreas } from '../../db/schema';
|
||||
import { addressZones, addressAreas } from '@/src/db/schema'
|
||||
import { eq, desc } from 'drizzle-orm';
|
||||
import { db } from '../../db/db_index';
|
||||
import { router,protectedProcedure } from '../trpc-index';
|
||||
import { db } from '@/src/db/db_index'
|
||||
import { router,protectedProcedure } from '@/src/trpc/trpc-index'
|
||||
|
||||
const addressRouter = router({
|
||||
getZones: protectedProcedure.query(async () => {
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
// import { router } from '@/src/trpc/trpc-index';
|
||||
import { router } from '@/src/trpc/trpc-index'
|
||||
import { complaintRouter } from '@/src/trpc/apis/admin-apis/apis/complaint'
|
||||
import { couponRouter } from '@/src/trpc/apis/admin-apis/apis/coupon'
|
||||
import { cancelledOrdersRouter } from '@/src/trpc/apis/admin-apis/apis/cancelled-orders'
|
||||
import { orderRouter } from '@/src/trpc/apis/admin-apis/apis/order'
|
||||
import { vendorSnippetsRouter } from '@/src/trpc/apis/admin-apis/apis/vendor-snippets'
|
||||
import { slotsRouter } from '@/src/trpc/apis/admin-apis/apis/slots'
|
||||
import { productRouter } from '@/src/trpc/apis/admin-apis/apis/product'
|
||||
import { staffUserRouter } from '@/src/trpc/apis/admin-apis/apis/staff-user'
|
||||
import { storeRouter } from '@/src/trpc/apis/admin-apis/apis/store'
|
||||
import { adminPaymentsRouter } from '@/src/trpc/apis/admin-apis/apis/payments'
|
||||
import addressRouter from '@/src/trpc/apis/admin-apis/apis/address'
|
||||
import { bannerRouter } from '@/src/trpc/apis/admin-apis/apis/banner'
|
||||
import { userRouter } from '@/src/trpc/apis/admin-apis/apis/user'
|
||||
import { constRouter } from '@/src/trpc/apis/admin-apis/apis/const'
|
||||
|
||||
export const adminRouter = router({
|
||||
complaint: complaintRouter,
|
||||
coupon: couponRouter,
|
||||
cancelledOrders: cancelledOrdersRouter,
|
||||
order: orderRouter,
|
||||
vendorSnippets: vendorSnippetsRouter,
|
||||
slots: slotsRouter,
|
||||
product: productRouter,
|
||||
staffUser: staffUserRouter,
|
||||
store: storeRouter,
|
||||
payments: adminPaymentsRouter,
|
||||
address: addressRouter,
|
||||
banner: bannerRouter,
|
||||
user: userRouter,
|
||||
const: constRouter,
|
||||
});
|
||||
|
||||
export type AdminRouter = typeof adminRouter;
|
||||
|
|
@ -1,11 +1,11 @@
|
|||
import { z } from 'zod';
|
||||
import { db } from '../../db/db_index';
|
||||
import { homeBanners } from '../../db/schema';
|
||||
import { db } from '@/src/db/db_index'
|
||||
import { homeBanners } from '@/src/db/schema'
|
||||
import { eq, and, desc, sql } from 'drizzle-orm';
|
||||
import { protectedProcedure, router } from '../trpc-index';
|
||||
import { extractKeyFromPresignedUrl, generateSignedUrlFromS3Url } from '../../lib/s3-client';
|
||||
import { ApiError } from 'src/lib/api-error';
|
||||
import { initializeAllStores } from '../../stores/store-initializer';
|
||||
import { protectedProcedure, router } from '@/src/trpc/trpc-index'
|
||||
import { extractKeyFromPresignedUrl, generateSignedUrlFromS3Url } from '@/src/lib/s3-client'
|
||||
import { ApiError } from '@/src/lib/api-error';
|
||||
import { initializeAllStores } from '@/src/stores/store-initializer'
|
||||
|
||||
export const bannerRouter = router({
|
||||
// Get all banners
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
import { router, protectedProcedure } from '../trpc-index';
|
||||
import { router, protectedProcedure } from '@/src/trpc/trpc-index'
|
||||
import { z } from 'zod';
|
||||
import { db } from '../../db/db_index';
|
||||
import { orders, orderStatus, users, addresses, orderItems, productInfo, units, refunds } from '../../db/schema';
|
||||
import { db } from '@/src/db/db_index'
|
||||
import { orders, orderStatus, users, addresses, orderItems, productInfo, units, refunds } from '@/src/db/schema'
|
||||
import { eq, desc } from 'drizzle-orm';
|
||||
|
||||
const updateCancellationReviewSchema = z.object({
|
||||
|
|
@ -1,9 +1,9 @@
|
|||
import { router, protectedProcedure } from '../trpc-index';
|
||||
import { router, protectedProcedure } from '@/src/trpc/trpc-index'
|
||||
import { z } from 'zod';
|
||||
import { db } from '../../db/db_index';
|
||||
import { complaints, users } from '../../db/schema';
|
||||
import { db } from '@/src/db/db_index'
|
||||
import { complaints, users } from '@/src/db/schema'
|
||||
import { eq, desc, lt, and } from 'drizzle-orm';
|
||||
import { generateSignedUrlsFromS3Urls } from '../../lib/s3-client';
|
||||
import { generateSignedUrlsFromS3Urls } from '@/src/lib/s3-client'
|
||||
|
||||
export const complaintRouter = router({
|
||||
getAll: protectedProcedure
|
||||
|
|
@ -1,9 +1,9 @@
|
|||
import { router, protectedProcedure } from '../trpc-index';
|
||||
import { router, protectedProcedure } from '@/src/trpc/trpc-index'
|
||||
import { z } from 'zod';
|
||||
import { db } from '../../db/db_index';
|
||||
import { keyValStore } from '../../db/schema';
|
||||
import { computeConstants } from '../../lib/const-store';
|
||||
import { CONST_KEYS } from '../../lib/const-keys';
|
||||
import { db } from '@/src/db/db_index'
|
||||
import { keyValStore } from '@/src/db/schema'
|
||||
import { computeConstants } from '@/src/lib/const-store'
|
||||
import { CONST_KEYS } from '@/src/lib/const-keys'
|
||||
|
||||
export const constRouter = router({
|
||||
getConstants: protectedProcedure
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
import { router, protectedProcedure } from '../trpc-index';
|
||||
import { router, protectedProcedure } from '@/src/trpc/trpc-index'
|
||||
import { z } from 'zod';
|
||||
import { db } from '../../db/db_index';
|
||||
import { coupons, users, staffUsers, orders, couponApplicableUsers, couponApplicableProducts, orderStatus, reservedCoupons } from '../../db/schema';
|
||||
import { db } from '@/src/db/db_index'
|
||||
import { coupons, users, staffUsers, orders, couponApplicableUsers, couponApplicableProducts, orderStatus, reservedCoupons } from '@/src/db/schema'
|
||||
import { eq, and, like, or, inArray, lt } from 'drizzle-orm';
|
||||
import dayjs from 'dayjs';
|
||||
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
import { router, protectedProcedure } from "../trpc-index";
|
||||
import { router, protectedProcedure } from "@/src/trpc/trpc-index"
|
||||
import { z } from "zod";
|
||||
import { db } from "../../db/db_index";
|
||||
import { db } from "@/src/db/db_index"
|
||||
import {
|
||||
orders,
|
||||
orderItems,
|
||||
|
|
@ -10,17 +10,17 @@ import {
|
|||
refunds,
|
||||
coupons,
|
||||
couponUsage,
|
||||
} from "../../db/schema";
|
||||
} from "@/src/db/schema";
|
||||
import { eq, and, gte, lt, desc, SQL, inArray } from "drizzle-orm";
|
||||
import dayjs from "dayjs";
|
||||
import utc from "dayjs/plugin/utc";
|
||||
import { ApiError } from "../../lib/api-error";
|
||||
import { ApiError } from "@/src/lib/api-error"
|
||||
import {
|
||||
sendOrderPackagedNotification,
|
||||
sendOrderDeliveredNotification,
|
||||
} from "../../lib/notif-job";
|
||||
import { publishCancellation } from "../../lib/post-order-handler";
|
||||
import { getMultipleUserNegativityScores } from "../../stores/user-negativity-store";
|
||||
} from "@/src/lib/notif-job";
|
||||
import { publishCancellation } from "@/src/lib/post-order-handler"
|
||||
import { getMultipleUserNegativityScores } from "@/src/stores/user-negativity-store"
|
||||
|
||||
const updateOrderNotesSchema = z.object({
|
||||
orderId: z.number(),
|
||||
|
|
@ -1,15 +1,15 @@
|
|||
import { router, protectedProcedure } from "../trpc-index";
|
||||
import { router, protectedProcedure } from "@/src/trpc/trpc-index"
|
||||
import { z } from "zod";
|
||||
import { db } from "../../db/db_index";
|
||||
import { db } from "@/src/db/db_index"
|
||||
import {
|
||||
orders,
|
||||
orderStatus,
|
||||
payments,
|
||||
refunds,
|
||||
} from "../../db/schema";
|
||||
} from "@/src/db/schema";
|
||||
import { and, eq } from "drizzle-orm";
|
||||
import { ApiError } from "../../lib/api-error";
|
||||
import { RazorpayPaymentService } from "../../lib/payments-utils";
|
||||
import { ApiError } from "@/src/lib/api-error"
|
||||
import { RazorpayPaymentService } from "@/src/lib/payments-utils"
|
||||
|
||||
const initiateRefundSchema = z
|
||||
.object({
|
||||
|
|
@ -1,13 +1,13 @@
|
|||
import { router, protectedProcedure } from '../trpc-index';
|
||||
import { router, protectedProcedure } from '@/src/trpc/trpc-index'
|
||||
import { z } from 'zod';
|
||||
import { db } from '../../db/db_index';
|
||||
import { productInfo, units, specialDeals, productSlots, productTags, productReviews, users, productGroupInfo, productGroupMembership } from '../../db/schema';
|
||||
import { db } from '@/src/db/db_index'
|
||||
import { productInfo, units, specialDeals, productSlots, productTags, productReviews, users, productGroupInfo, productGroupMembership } from '@/src/db/schema'
|
||||
import { eq, and, inArray, desc, sql } from 'drizzle-orm';
|
||||
import { ApiError } from '../../lib/api-error';
|
||||
import { imageUploadS3, generateSignedUrlsFromS3Urls, getOriginalUrlFromSignedUrl, claimUploadUrl } from '../../lib/s3-client';
|
||||
import { deleteS3Image } from '../../lib/delete-image';
|
||||
import type { SpecialDeal } from '../../db/types';
|
||||
import { initializeAllStores } from '../../stores/store-initializer';
|
||||
import { ApiError } from '@/src/lib/api-error'
|
||||
import { imageUploadS3, generateSignedUrlsFromS3Urls, getOriginalUrlFromSignedUrl, claimUploadUrl } from '@/src/lib/s3-client'
|
||||
import { deleteS3Image } from '@/src/lib/delete-image'
|
||||
import type { SpecialDeal } from '@/src/db/types'
|
||||
import { initializeAllStores } from '@/src/stores/store-initializer'
|
||||
|
||||
type CreateDeal = {
|
||||
quantity: number;
|
||||
|
|
@ -335,7 +335,7 @@ export const productRouter = router({
|
|||
|
||||
// Claim upload URLs
|
||||
if (uploadUrls && uploadUrls.length > 0) {
|
||||
// const { claimUploadUrl } = await import('../../lib/s3-client');
|
||||
// const { claimUploadUrl } = await import('@/src/lib/s3-client');
|
||||
await Promise.all(uploadUrls.map(url => claimUploadUrl(url)));
|
||||
}
|
||||
|
||||
|
|
@ -1,14 +1,14 @@
|
|||
import { router, protectedProcedure } from "../trpc-index";
|
||||
import { router, protectedProcedure } from "@/src/trpc/trpc-index"
|
||||
import { TRPCError } from "@trpc/server";
|
||||
import { z } from "zod";
|
||||
import { db } from "../../db/db_index";
|
||||
import { deliverySlotInfo, productSlots, productInfo, vendorSnippets, productGroupInfo } from "../../db/schema";
|
||||
import { db } from "@/src/db/db_index"
|
||||
import { deliverySlotInfo, productSlots, productInfo, vendorSnippets, productGroupInfo } from "@/src/db/schema"
|
||||
import { eq, inArray, and, desc } from "drizzle-orm";
|
||||
import { ApiError } from "../../lib/api-error";
|
||||
import { appUrl } from "../../lib/env-exporter";
|
||||
import redisClient from "../../lib/redis-client";
|
||||
import { getSlotSequenceKey } from "../../lib/redisKeyGetters";
|
||||
import { initializeAllStores } from '../../stores/store-initializer';
|
||||
import { ApiError } from "@/src/lib/api-error"
|
||||
import { appUrl } from "@/src/lib/env-exporter"
|
||||
import redisClient from "@/src/lib/redis-client"
|
||||
import { getSlotSequenceKey } from "@/src/lib/redisKeyGetters"
|
||||
import { initializeAllStores } from '@/src/stores/store-initializer'
|
||||
|
||||
interface CachedDeliverySequence {
|
||||
[userId: string]: number[];
|
||||
|
|
@ -1,11 +1,11 @@
|
|||
import { router, publicProcedure, protectedProcedure } from '../trpc-index';
|
||||
import { router, publicProcedure, protectedProcedure } from '@/src/trpc/trpc-index'
|
||||
import { z } from 'zod';
|
||||
import { db } from '../../db/db_index';
|
||||
import { staffUsers, staffRoles, users, userDetails, orders } from '../../db/schema';
|
||||
import { db } from '@/src/db/db_index'
|
||||
import { staffUsers, staffRoles, users, userDetails, orders } from '@/src/db/schema'
|
||||
import { eq, or, ilike, and, lt, desc } from 'drizzle-orm';
|
||||
import bcrypt from 'bcryptjs';
|
||||
import jwt from 'jsonwebtoken';
|
||||
import { ApiError } from '../../lib/api-error';
|
||||
import { ApiError } from '@/src/lib/api-error'
|
||||
|
||||
export const staffUserRouter = router({
|
||||
login: publicProcedure
|
||||
|
|
@ -1,12 +1,12 @@
|
|||
import { router, protectedProcedure } from '../trpc-index';
|
||||
import { router, protectedProcedure } from '@/src/trpc/trpc-index'
|
||||
import { z } from 'zod';
|
||||
import { db } from '../../db/db_index';
|
||||
import { storeInfo, productInfo } from '../../db/schema';
|
||||
import { db } from '@/src/db/db_index'
|
||||
import { storeInfo, productInfo } from '@/src/db/schema'
|
||||
import { eq, inArray } from 'drizzle-orm';
|
||||
import { ApiError } from '../../lib/api-error';
|
||||
import { extractKeyFromPresignedUrl, deleteImageUtil, generateSignedUrlFromS3Url } from '../../lib/s3-client';
|
||||
import { ApiError } from '@/src/lib/api-error'
|
||||
import { extractKeyFromPresignedUrl, deleteImageUtil, generateSignedUrlFromS3Url } from '@/src/lib/s3-client'
|
||||
import { getSignedUrl } from '@aws-sdk/s3-request-presigner';
|
||||
import { initializeAllStores } from '../../stores/store-initializer';
|
||||
import { initializeAllStores } from '@/src/stores/store-initializer'
|
||||
|
||||
export const storeRouter = router({
|
||||
getStores: protectedProcedure
|
||||
|
|
@ -1,11 +1,11 @@
|
|||
import { protectedProcedure } from '../trpc-index';
|
||||
import { protectedProcedure } from '@/src/trpc/trpc-index';
|
||||
import { z } from 'zod';
|
||||
import { db } from '../../db/db_index';
|
||||
import { users, complaints, orders, orderItems, notifCreds, unloggedUserTokens, userDetails, userIncidents } from '../../db/schema';
|
||||
import { db } from '@/src/db/db_index';
|
||||
import { users, complaints, orders, orderItems, notifCreds, unloggedUserTokens, userDetails, userIncidents } from '@/src/db/schema';
|
||||
import { eq, sql, desc, asc, count, max, inArray } from 'drizzle-orm';
|
||||
import { ApiError } from '../../lib/api-error';
|
||||
import { notificationQueue } from '../../lib/notif-job';
|
||||
import { recomputeUserNegativityScore } from '../../stores/user-negativity-store';
|
||||
import { ApiError } from '@/src/lib/api-error';
|
||||
import { notificationQueue } from '@/src/lib/notif-job';
|
||||
import { recomputeUserNegativityScore } from '@/src/stores/user-negativity-store';
|
||||
|
||||
async function createUserByMobile(mobile: string): Promise<typeof users.$inferSelect> {
|
||||
// Clean mobile number (remove non-digits)
|
||||
|
|
@ -212,7 +212,7 @@ export const userRouter = {
|
|||
let orderStatuses: { orderId: number; isDelivered: boolean; isCancelled: boolean }[] = [];
|
||||
|
||||
if (orderIds.length > 0) {
|
||||
const { orderStatus } = await import('../../db/schema');
|
||||
const { orderStatus } = await import('@/src/db/schema');
|
||||
orderStatuses = await db
|
||||
.select({
|
||||
orderId: orderStatus.orderId,
|
||||
|
|
@ -1,10 +1,10 @@
|
|||
import { router, publicProcedure, protectedProcedure } from '../trpc-index';
|
||||
import { router, publicProcedure, protectedProcedure } from '@/src/trpc/trpc-index'
|
||||
import { z } from 'zod';
|
||||
import dayjs from 'dayjs';
|
||||
import { db } from '../../db/db_index';
|
||||
import { vendorSnippets, deliverySlotInfo, productInfo, orders, orderItems, users, orderStatus } from '../../db/schema';
|
||||
import { db } from '@/src/db/db_index'
|
||||
import { vendorSnippets, deliverySlotInfo, productInfo, orders, orderItems, users, orderStatus } from '@/src/db/schema'
|
||||
import { eq, and, inArray, isNotNull, gt, sql, asc, ne } from 'drizzle-orm';
|
||||
import { appUrl } from '../../lib/env-exporter';
|
||||
import { appUrl } from '@/src/lib/env-exporter'
|
||||
|
||||
const createSnippetSchema = z.object({
|
||||
snippetCode: z.string().min(1, "Snippet code is required"),
|
||||
|
|
@ -1,14 +1,14 @@
|
|||
import { router, publicProcedure, protectedProcedure } from '../trpc-index';
|
||||
import { commonRouter } from './common';
|
||||
import { db } from '../../db/db_index';
|
||||
import { keyValStore, productInfo, storeInfo } from '../../db/schema';
|
||||
import { router, publicProcedure, protectedProcedure } from '@/src/trpc/trpc-index'
|
||||
import { commonRouter } from '@/src/trpc/apis/common-apis/common'
|
||||
import { db } from '@/src/db/db_index'
|
||||
import { keyValStore, productInfo, storeInfo } from '@/src/db/schema'
|
||||
import * as turf from '@turf/turf';
|
||||
import { z } from 'zod';
|
||||
import { mbnrGeoJson } from '../../lib/mbnr-geojson';
|
||||
import { generateUploadUrl } from '../../lib/s3-client';
|
||||
import { ApiError } from '../../lib/api-error';
|
||||
import { getAllConstValues } from '../../lib/const-store';
|
||||
import { CONST_KEYS } from '../../lib/const-keys';
|
||||
import { mbnrGeoJson } from '@/src/lib/mbnr-geojson'
|
||||
import { generateUploadUrl } from '@/src/lib/s3-client'
|
||||
import { ApiError } from '@/src/lib/api-error'
|
||||
import { getAllConstValues } from '@/src/lib/const-store'
|
||||
import { CONST_KEYS } from '@/src/lib/const-keys'
|
||||
|
||||
const polygon = turf.polygon(mbnrGeoJson.features[0].geometry.coordinates);
|
||||
|
||||
|
|
@ -1,11 +1,11 @@
|
|||
import { router, publicProcedure } from '../trpc-index';
|
||||
import { db } from '../../db/db_index';
|
||||
import { productInfo, units, productSlots, deliverySlotInfo, storeInfo, productTags, productTagInfo } from '../../db/schema';
|
||||
import { router, publicProcedure } from '@/src/trpc/trpc-index'
|
||||
import { db } from '@/src/db/db_index'
|
||||
import { productInfo, units, productSlots, deliverySlotInfo, storeInfo, productTags, productTagInfo } from '@/src/db/schema'
|
||||
import { eq, gt, and, sql, inArray } from 'drizzle-orm';
|
||||
import { generateSignedUrlsFromS3Urls, generateSignedUrlFromS3Url } from '../../lib/s3-client';
|
||||
import { generateSignedUrlsFromS3Urls, generateSignedUrlFromS3Url } from '@/src/lib/s3-client'
|
||||
import { z } from 'zod';
|
||||
import { getAllProducts as getAllProductsFromCache } from '../../stores/product-store';
|
||||
import { getDashboardTags as getDashboardTagsFromCache } from '../../stores/product-tag-store';
|
||||
import { getAllProducts as getAllProductsFromCache } from '@/src/stores/product-store'
|
||||
import { getDashboardTags as getDashboardTagsFromCache } from '@/src/stores/product-tag-store'
|
||||
import Fuse from 'fuse.js';
|
||||
|
||||
export const getNextDeliveryDate = async (productId: number): Promise<Date | null> => {
|
||||
|
|
@ -1,10 +1,10 @@
|
|||
import { router, protectedProcedure } from '../trpc-index';
|
||||
import { router, protectedProcedure } from '@/src/trpc/trpc-index';
|
||||
import { z } from 'zod';
|
||||
import { db } from '../../db/db_index';
|
||||
import { addresses, orders, orderStatus, deliverySlotInfo } from '../../db/schema';
|
||||
import { db } from '@/src/db/db_index';
|
||||
import { addresses, orders, orderStatus, deliverySlotInfo } from '@/src/db/schema';
|
||||
import { eq, and, gte } from 'drizzle-orm';
|
||||
import dayjs from 'dayjs';
|
||||
import { extractCoordsFromRedirectUrl } from '../../lib/license-util';
|
||||
import { extractCoordsFromRedirectUrl } from '@/src/lib/license-util';
|
||||
|
||||
export const addressRouter = router({
|
||||
getDefaultAddress: protectedProcedure
|
||||
|
|
@ -1,20 +1,20 @@
|
|||
import { router, publicProcedure, protectedProcedure } from '../trpc-index';
|
||||
import { router, publicProcedure, protectedProcedure } from '@/src/trpc/trpc-index';
|
||||
import { z } from 'zod';
|
||||
import bcrypt from 'bcryptjs';
|
||||
import jwt from 'jsonwebtoken';
|
||||
import { eq } from 'drizzle-orm';
|
||||
import { db } from '../../db/db_index';
|
||||
import { db } from '@/src/db/db_index';
|
||||
import {
|
||||
users, userCreds, userDetails, addresses, cartItems, complaints,
|
||||
couponApplicableUsers, couponUsage, notifCreds, notifications,
|
||||
orderItems, orderStatus, orders, payments, refunds,
|
||||
productReviews, reservedCoupons
|
||||
} from '../../db/schema';
|
||||
import { generateSignedUrlFromS3Url } from '../../lib/s3-client';
|
||||
import { ApiError } from '../../lib/api-error';
|
||||
import catchAsync from '../../lib/catch-async';
|
||||
import { jwtSecret } from 'src/lib/env-exporter';
|
||||
import { sendOtp, verifyOtpUtil, getOtpCreds } from '../../lib/otp-utils';
|
||||
} from '@/src/db/schema';
|
||||
import { generateSignedUrlFromS3Url } from '@/src/lib/s3-client';
|
||||
import { ApiError } from '@/src/lib/api-error';
|
||||
import catchAsync from '@/src/lib/catch-async';
|
||||
import { jwtSecret } from '@/src/lib/env-exporter';
|
||||
import { sendOtp, verifyOtpUtil, getOtpCreds } from '@/src/lib/otp-utils';
|
||||
|
||||
interface LoginRequest {
|
||||
identifier: string; // email or mobile
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
import { db } from '../../db/db_index';
|
||||
import { homeBanners } from '../../db/schema';
|
||||
import { publicProcedure, router } from '../trpc-index';
|
||||
import { generateSignedUrlFromS3Url } from '../../lib/s3-client';
|
||||
import { db } from '@/src/db/db_index';
|
||||
import { homeBanners } from '@/src/db/schema';
|
||||
import { publicProcedure, router } from '@/src/trpc/trpc-index';
|
||||
import { generateSignedUrlFromS3Url } from '@/src/lib/s3-client';
|
||||
import { isNotNull, asc } from 'drizzle-orm';
|
||||
|
||||
export const bannerRouter = router({
|
||||
|
|
@ -1,11 +1,11 @@
|
|||
import { router, protectedProcedure, publicProcedure } from '../trpc-index';
|
||||
import { router, protectedProcedure, publicProcedure } from '@/src/trpc/trpc-index';
|
||||
import { z } from 'zod';
|
||||
import { db } from '../../db/db_index';
|
||||
import { cartItems, productInfo, units, productSlots, deliverySlotInfo } from '../../db/schema';
|
||||
import { db } from '@/src/db/db_index';
|
||||
import { cartItems, productInfo, units, productSlots, deliverySlotInfo } from '@/src/db/schema';
|
||||
import { eq, and, sql, inArray, gt } from 'drizzle-orm';
|
||||
import { ApiError } from '../../lib/api-error';
|
||||
import { generateSignedUrlsFromS3Urls, scaffoldAssetUrl } from '../../lib/s3-client';
|
||||
import { getProductSlots, getMultipleProductsSlots } from '../../stores/slot-store';
|
||||
import { ApiError } from '@/src/lib/api-error';
|
||||
import { generateSignedUrlsFromS3Urls, scaffoldAssetUrl } from '@/src/lib/s3-client';
|
||||
import { getProductSlots, getMultipleProductsSlots } from '@/src/stores/slot-store';
|
||||
|
||||
interface CartResponse {
|
||||
items: any[];
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
import { router, protectedProcedure } from '../trpc-index';
|
||||
import { router, protectedProcedure } from '@/src/trpc/trpc-index';
|
||||
import { z } from 'zod';
|
||||
import { db } from '../../db/db_index';
|
||||
import { complaints } from '../../db/schema';
|
||||
import { db } from '@/src/db/db_index';
|
||||
import { complaints } from '@/src/db/schema';
|
||||
import { eq } from 'drizzle-orm';
|
||||
|
||||
export const complaintRouter = router({
|
||||
|
|
@ -1,11 +1,11 @@
|
|||
import { router, protectedProcedure } from '../trpc-index';
|
||||
import { router, protectedProcedure } from '@/src/trpc/trpc-index';
|
||||
import { z } from 'zod';
|
||||
import { db } from '../../db/db_index';
|
||||
import { coupons, couponUsage, couponApplicableUsers, reservedCoupons, couponApplicableProducts } from '../../db/schema';
|
||||
import { db } from '@/src/db/db_index';
|
||||
import { coupons, couponUsage, couponApplicableUsers, reservedCoupons, couponApplicableProducts } from '@/src/db/schema';
|
||||
import { eq, and, or, gt, isNull, sql } from 'drizzle-orm';
|
||||
import { ApiError } from 'src/lib/api-error';
|
||||
import { ApiError } from '@/src/lib/api-error';
|
||||
|
||||
import { users } from '../../db/schema';
|
||||
import { users } from '@/src/db/schema';
|
||||
|
||||
type CouponWithRelations = typeof coupons.$inferSelect & {
|
||||
applicableUsers: (typeof couponApplicableUsers.$inferSelect & { user: typeof users.$inferSelect })[];
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
import { router, protectedProcedure } from '../trpc-index';
|
||||
import { router, protectedProcedure } from '@/src/trpc/trpc-index';
|
||||
import { z } from 'zod';
|
||||
import { generateUploadUrl } from '../../lib/s3-client';
|
||||
import { ApiError } from '../../lib/api-error';
|
||||
import { generateUploadUrl } from '@/src/lib/s3-client';
|
||||
import { ApiError } from '@/src/lib/api-error';
|
||||
|
||||
export const fileUploadRouter = router({
|
||||
generateUploadUrls: protectedProcedure
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
import { router, protectedProcedure } from "../trpc-index";
|
||||
import { router, protectedProcedure } from "@/src/trpc/trpc-index";
|
||||
import { z } from "zod";
|
||||
import { db } from "../../db/db_index";
|
||||
import { db } from "@/src/db/db_index";
|
||||
import {
|
||||
orders,
|
||||
orderItems,
|
||||
|
|
@ -15,19 +15,19 @@ import {
|
|||
refunds,
|
||||
units,
|
||||
userDetails,
|
||||
} from "../../db/schema";
|
||||
} from "@/src/db/schema";
|
||||
import { eq, and, inArray, desc, gte, lte } from "drizzle-orm";
|
||||
import { scaffoldAssetUrl } from "../../lib/s3-client";
|
||||
import { ApiError } from "../../lib/api-error";
|
||||
import { scaffoldAssetUrl } from "@/src/lib/s3-client";
|
||||
import { ApiError } from "@/src/lib/api-error";
|
||||
import {
|
||||
sendOrderPlacedNotification,
|
||||
sendOrderCancelledNotification,
|
||||
} from "../../lib/notif-job";
|
||||
import { RazorpayPaymentService } from "../../lib/payments-utils";
|
||||
import { getNextDeliveryDate } from "../common-apis/common";
|
||||
import { CONST_KEYS, getConstant, getConstants } from "../../lib/const-store";
|
||||
import { publishFormattedOrder, publishCancellation } from "../../lib/post-order-handler";
|
||||
import { getSlotById } from "../../stores/slot-store";
|
||||
} from "@/src/lib/notif-job";
|
||||
import { RazorpayPaymentService } from "@/src/lib/payments-utils";
|
||||
import { getNextDeliveryDate } from "@/src/trpc/apis/common-apis/common";
|
||||
import { CONST_KEYS, getConstant, getConstants } from "@/src/lib/const-store";
|
||||
import { publishFormattedOrder, publishCancellation } from "@/src/lib/post-order-handler";
|
||||
import { getSlotById } from "@/src/stores/slot-store";
|
||||
|
||||
|
||||
const validateAndGetCoupon = async (
|
||||
|
|
@ -1,14 +1,14 @@
|
|||
|
||||
import { router, protectedProcedure } from '../trpc-index';
|
||||
import { router, protectedProcedure } from '@/src/trpc/trpc-index';
|
||||
import { z } from 'zod';
|
||||
import { db } from '../../db/db_index';
|
||||
import { orders, payments, orderStatus } from '../../db/schema';
|
||||
import { db } from '@/src/db/db_index';
|
||||
import { orders, payments, orderStatus } from '@/src/db/schema';
|
||||
import { eq } from 'drizzle-orm';
|
||||
import { ApiError } from '../../lib/api-error';
|
||||
import { ApiError } from '@/src/lib/api-error';
|
||||
import crypto from 'crypto';
|
||||
import { razorpayId, razorpaySecret } from "../../lib/env-exporter";
|
||||
import { DiskPersistedSet } from "src/lib/disk-persisted-set";
|
||||
import { RazorpayPaymentService } from "../../lib/payments-utils";
|
||||
import { razorpayId, razorpaySecret } from "@/src/lib/env-exporter";
|
||||
import { DiskPersistedSet } from "@/src/lib/disk-persisted-set";
|
||||
import { RazorpayPaymentService } from "@/src/lib/payments-utils";
|
||||
|
||||
|
||||
|
||||
|
|
@ -156,4 +156,3 @@ export const paymentRouter = router({
|
|||
}),
|
||||
|
||||
});
|
||||
|
||||
|
|
@ -1,11 +1,11 @@
|
|||
import { router, publicProcedure, protectedProcedure } from '../trpc-index';
|
||||
import { router, publicProcedure, protectedProcedure } from '@/src/trpc/trpc-index';
|
||||
import { z } from 'zod';
|
||||
import { db } from '../../db/db_index';
|
||||
import { productInfo, units, productSlots, deliverySlotInfo, specialDeals, storeInfo, productTagInfo, productTags, productReviews, users } from '../../db/schema';
|
||||
import { claimUploadUrl, extractKeyFromPresignedUrl, scaffoldAssetUrl } from '../../lib/s3-client';
|
||||
import { ApiError } from '../../lib/api-error';
|
||||
import { db } from '@/src/db/db_index';
|
||||
import { productInfo, units, productSlots, deliverySlotInfo, specialDeals, storeInfo, productTagInfo, productTags, productReviews, users } from '@/src/db/schema';
|
||||
import { claimUploadUrl, extractKeyFromPresignedUrl, scaffoldAssetUrl } from '@/src/lib/s3-client';
|
||||
import { ApiError } from '@/src/lib/api-error';
|
||||
import { eq, and, gt, sql, inArray, desc } from 'drizzle-orm';
|
||||
import { getProductById as getProductByIdFromCache, getAllProducts as getAllProductsFromCache } from '../../stores/product-store';
|
||||
import { getProductById as getProductByIdFromCache, getAllProducts as getAllProductsFromCache } from '@/src/stores/product-store';
|
||||
import dayjs from 'dayjs';
|
||||
|
||||
// Uniform Product Type
|
||||
|
|
@ -1,14 +1,14 @@
|
|||
import { router, publicProcedure } from "../trpc-index";
|
||||
import { router, publicProcedure } from "@/src/trpc/trpc-index";
|
||||
import { z } from "zod";
|
||||
import { db } from "../../db/db_index";
|
||||
import { db } from "@/src/db/db_index";
|
||||
import {
|
||||
deliverySlotInfo,
|
||||
productSlots,
|
||||
productInfo,
|
||||
units,
|
||||
} from "../../db/schema";
|
||||
} from "@/src/db/schema";
|
||||
import { eq, and, gt, asc } from "drizzle-orm";
|
||||
import { getAllSlots as getAllSlotsFromCache, getSlotById as getSlotByIdFromCache } from "../../stores/slot-store";
|
||||
import { getAllSlots as getAllSlotsFromCache, getSlotById as getSlotByIdFromCache } from "@/src/stores/slot-store";
|
||||
import dayjs from 'dayjs';
|
||||
|
||||
// Helper method to get formatted slot data by ID
|
||||
|
|
@ -1,10 +1,10 @@
|
|||
import { router, publicProcedure } from '../trpc-index';
|
||||
import { router, publicProcedure } from '@/src/trpc/trpc-index';
|
||||
import { z } from 'zod';
|
||||
import { db } from '../../db/db_index';
|
||||
import { storeInfo, productInfo, units } from '../../db/schema';
|
||||
import { db } from '@/src/db/db_index';
|
||||
import { storeInfo, productInfo, units } from '@/src/db/schema';
|
||||
import { eq, and, sql } from 'drizzle-orm';
|
||||
import { scaffoldAssetUrl } from '../../lib/s3-client';
|
||||
import { ApiError } from '../../lib/api-error';
|
||||
import { scaffoldAssetUrl } from '@/src/lib/s3-client';
|
||||
import { ApiError } from '@/src/lib/api-error';
|
||||
|
||||
export const storesRouter = router({
|
||||
getStores: publicProcedure
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
import { router, publicProcedure } from '../trpc-index';
|
||||
import { router, publicProcedure } from '@/src/trpc/trpc-index';
|
||||
import { z } from 'zod';
|
||||
import { getTagsByStoreId } from '../../stores/product-tag-store';
|
||||
import { ApiError } from '../../lib/api-error';
|
||||
import { getTagsByStoreId } from '@/src/stores/product-tag-store';
|
||||
import { ApiError } from '@/src/lib/api-error';
|
||||
|
||||
export const tagsRouter = router({
|
||||
getTagsByStore: publicProcedure
|
||||
34
apps/backend/src/trpc/apis/user-apis/apis/user-trpc-index.ts
Normal file
34
apps/backend/src/trpc/apis/user-apis/apis/user-trpc-index.ts
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
import { router } from '@/src/trpc/trpc-index';
|
||||
import { addressRouter } from '@/src/trpc/apis/user-apis/apis/address';
|
||||
import { authRouter } from '@/src/trpc/apis/user-apis/apis/auth';
|
||||
import { bannerRouter } from '@/src/trpc/apis/user-apis/apis/banners';
|
||||
import { cartRouter } from '@/src/trpc/apis/user-apis/apis/cart';
|
||||
import { complaintRouter } from '@/src/trpc/apis/user-apis/apis/complaint';
|
||||
import { orderRouter } from '@/src/trpc/apis/user-apis/apis/order';
|
||||
import { productRouter } from '@/src/trpc/apis/user-apis/apis/product';
|
||||
import { slotsRouter } from '@/src/trpc/apis/user-apis/apis/slots';
|
||||
import { userRouter as userDataRouter } from '@/src/trpc/apis/user-apis/apis/user';
|
||||
import { userCouponRouter } from '@/src/trpc/apis/user-apis/apis/coupon';
|
||||
import { paymentRouter } from '@/src/trpc/apis/user-apis/apis/payments';
|
||||
import { storesRouter } from '@/src/trpc/apis/user-apis/apis/stores';
|
||||
import { fileUploadRouter } from '@/src/trpc/apis/user-apis/apis/file-upload';
|
||||
import { tagsRouter } from '@/src/trpc/apis/user-apis/apis/tags';
|
||||
|
||||
export const userRouter = router({
|
||||
address: addressRouter,
|
||||
auth: authRouter,
|
||||
banner: bannerRouter,
|
||||
cart: cartRouter,
|
||||
complaint: complaintRouter,
|
||||
order: orderRouter,
|
||||
product: productRouter,
|
||||
slots: slotsRouter,
|
||||
user: userDataRouter,
|
||||
coupon: userCouponRouter,
|
||||
payment: paymentRouter,
|
||||
stores: storesRouter,
|
||||
fileUpload: fileUploadRouter,
|
||||
tags: tagsRouter,
|
||||
});
|
||||
|
||||
export type UserRouter = typeof userRouter;
|
||||
|
|
@ -1,12 +1,12 @@
|
|||
import { router, protectedProcedure, publicProcedure } from '../trpc-index';
|
||||
import { router, protectedProcedure, publicProcedure } from '@/src/trpc/trpc-index';
|
||||
import jwt from 'jsonwebtoken';
|
||||
import { eq, and } from 'drizzle-orm';
|
||||
import { z } from 'zod';
|
||||
import { db } from '../../db/db_index';
|
||||
import { users, userDetails, userCreds, notifCreds, unloggedUserTokens } from '../../db/schema';
|
||||
import { ApiError } from '../../lib/api-error';
|
||||
import { jwtSecret } from 'src/lib/env-exporter';
|
||||
import { generateSignedUrlFromS3Url } from '../../lib/s3-client';
|
||||
import { db } from '@/src/db/db_index';
|
||||
import { users, userDetails, userCreds, notifCreds, unloggedUserTokens } from '@/src/db/schema';
|
||||
import { ApiError } from '@/src/lib/api-error';
|
||||
import { jwtSecret } from '@/src/lib/env-exporter';
|
||||
import { generateSignedUrlFromS3Url } from '@/src/lib/s3-client';
|
||||
|
||||
interface AuthResponse {
|
||||
token: string;
|
||||
|
|
@ -1,8 +1,8 @@
|
|||
import { router, publicProcedure } from './trpc-index';
|
||||
import { router, publicProcedure } from '@/src/trpc/trpc-index'
|
||||
import { z } from 'zod';
|
||||
import { adminRouter } from './admin-apis/admin-trpc-index';
|
||||
import { userRouter } from './user-apis/user-trpc-index';
|
||||
import { commonApiRouter } from './common-apis/common-trpc-index';
|
||||
import { adminRouter } from '@/src/trpc/apis/admin-apis/apis/admin-trpc-index'
|
||||
import { userRouter } from '@/src/trpc/apis/user-apis/apis/user-trpc-index'
|
||||
import { commonApiRouter } from '@/src/trpc/apis/common-apis/common-trpc-index'
|
||||
|
||||
// Create the main app router
|
||||
export const appRouter = router({
|
||||
|
|
|
|||
|
|
@ -1,34 +0,0 @@
|
|||
import { router } from '../trpc-index';
|
||||
import { addressRouter } from './address';
|
||||
import { authRouter } from './auth';
|
||||
import { bannerRouter } from './banners';
|
||||
import { cartRouter } from './cart';
|
||||
import { complaintRouter } from './complaint';
|
||||
import { orderRouter } from './order';
|
||||
import { productRouter } from './product';
|
||||
import { slotsRouter } from './slots';
|
||||
import { userRouter as userDataRouter } from './user';
|
||||
import { userCouponRouter } from './coupon';
|
||||
import { paymentRouter } from './payments';
|
||||
import { storesRouter } from './stores';
|
||||
import { fileUploadRouter } from './file-upload';
|
||||
import { tagsRouter } from './tags';
|
||||
|
||||
export const userRouter = router({
|
||||
address: addressRouter,
|
||||
auth: authRouter,
|
||||
banner: bannerRouter,
|
||||
cart: cartRouter,
|
||||
complaint: complaintRouter,
|
||||
order: orderRouter,
|
||||
product: productRouter,
|
||||
slots: slotsRouter,
|
||||
user: userDataRouter,
|
||||
coupon: userCouponRouter,
|
||||
payment: paymentRouter,
|
||||
stores: storesRouter,
|
||||
fileUpload: fileUploadRouter,
|
||||
tags: tagsRouter,
|
||||
});
|
||||
|
||||
export type UserRouter = typeof userRouter;
|
||||
|
|
@ -2,13 +2,13 @@ import { Request, Response, NextFunction } from 'express';
|
|||
import bcrypt from 'bcryptjs';
|
||||
import jwt from 'jsonwebtoken';
|
||||
import { eq } from 'drizzle-orm';
|
||||
import { db } from '../db/db_index';
|
||||
import { users, userCreds, userDetails } from '../db/schema';
|
||||
import { ApiError } from '../lib/api-error';
|
||||
import catchAsync from '../lib/catch-async';
|
||||
import { jwtSecret } from 'src/lib/env-exporter';
|
||||
import uploadHandler from '../lib/upload-handler';
|
||||
import { imageUploadS3, generateSignedUrlFromS3Url } from '../lib/s3-client';
|
||||
import { db } from '@/src/db/db_index'
|
||||
import { users, userCreds, userDetails } from '@/src/db/schema'
|
||||
import { ApiError } from '@/src/lib/api-error'
|
||||
import catchAsync from '@/src/lib/catch-async'
|
||||
import { jwtSecret } from '@/src/lib/env-exporter';
|
||||
import uploadHandler from '@/src/lib/upload-handler'
|
||||
import { imageUploadS3, generateSignedUrlFromS3Url } from '@/src/lib/s3-client'
|
||||
|
||||
interface RegisterRequest {
|
||||
name: string;
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import { Router } from 'express';
|
||||
import { register, updateProfile } from './auth.controller';
|
||||
import { verifyToken } from '../middleware/auth';
|
||||
import uploadHandler from '../lib/upload-handler';
|
||||
import { register, updateProfile } from '@/src/uv-apis/auth.controller'
|
||||
import { verifyToken } from '@/src/middleware/auth'
|
||||
import uploadHandler from '@/src/lib/upload-handler'
|
||||
|
||||
const router = Router();
|
||||
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
import { Request, Response, NextFunction } from 'express';
|
||||
import { db } from '../db/db_index';
|
||||
import { complaints } from '../db/schema';
|
||||
import { ApiError } from '../lib/api-error';
|
||||
import catchAsync from '../lib/catch-async';
|
||||
import { imageUploadS3 } from '../lib/s3-client';
|
||||
import { db } from '@/src/db/db_index'
|
||||
import { complaints } from '@/src/db/schema'
|
||||
import { ApiError } from '@/src/lib/api-error'
|
||||
import catchAsync from '@/src/lib/catch-async'
|
||||
import { imageUploadS3 } from '@/src/lib/s3-client'
|
||||
|
||||
interface RaiseComplaintRequest {
|
||||
orderId?: string;
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import { Router } from "express";
|
||||
import authRouter from "./auth.router";
|
||||
import { raiseComplaint } from "./user-rest.controller";
|
||||
import uploadHandler from "src/lib/upload-handler";
|
||||
import authRouter from "@/src/uv-apis/auth.router"
|
||||
import { raiseComplaint } from "@/src/uv-apis/user-rest.controller"
|
||||
import uploadHandler from "@/src/lib/upload-handler";
|
||||
|
||||
const router = Router();
|
||||
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue