mirror of
https://github.com/i701/sarlink-portal.git
synced 2025-07-02 15:58:22 +00:00
feat(devices): add proper filter handling and update shadcn 🔨
This commit is contained in:
54
lib/utils.ts
54
lib/utils.ts
@ -2,47 +2,47 @@ import { type ClassValue, clsx } from "clsx";
|
||||
import { twMerge } from "tailwind-merge";
|
||||
|
||||
export function cn(...inputs: ClassValue[]) {
|
||||
return twMerge(clsx(inputs));
|
||||
return twMerge(clsx(inputs));
|
||||
}
|
||||
|
||||
export const formatDate = (date: Date): string => {
|
||||
const pad = (num: number): string => num.toString().padStart(2, "0");
|
||||
const pad = (num: number): string => num.toString().padStart(2, "0");
|
||||
|
||||
const year = date.getFullYear();
|
||||
const month = pad(date.getMonth() + 1); // Months are zero-based
|
||||
const day = pad(date.getDate());
|
||||
const hours = pad(date.getHours());
|
||||
const minutes = pad(date.getMinutes() + 5);
|
||||
const year = date.getFullYear();
|
||||
const month = pad(date.getMonth() + 1); // Months are zero-based
|
||||
const day = pad(date.getDate());
|
||||
const hours = pad(date.getHours());
|
||||
const minutes = pad(date.getMinutes() + 5);
|
||||
|
||||
return `${year}-${month}-${day} ${hours}:${minutes}`;
|
||||
return `${year}-${month}-${day} ${hours}:${minutes}`;
|
||||
};
|
||||
|
||||
export const formatMacAddress = (mac: string): string => {
|
||||
const formatted = mac
|
||||
.replace(/[^A-Fa-f0-9]/g, "")
|
||||
.toUpperCase()
|
||||
.match(/.{2}/g);
|
||||
const formatted = mac
|
||||
.replace(/[^A-Fa-f0-9]/g, "")
|
||||
.toUpperCase()
|
||||
.match(/.{2}/g);
|
||||
|
||||
// Provide a fallback if formatted is null
|
||||
return formatted ? formatted.join("-") : "";
|
||||
// Provide a fallback if formatted is null
|
||||
return formatted ? formatted.join("-") : "";
|
||||
};
|
||||
|
||||
export function validateApiKey(request: Request) {
|
||||
// Get API key from environment variable
|
||||
const validApiKey = process.env.CRON_API_KEY;
|
||||
// Get API key from environment variable
|
||||
const validApiKey = process.env.CRON_API_KEY;
|
||||
|
||||
if (!validApiKey) {
|
||||
throw new Error("CRON_API_KEY is not configured");
|
||||
}
|
||||
if (!validApiKey) {
|
||||
throw new Error("CRON_API_KEY is not configured");
|
||||
}
|
||||
|
||||
// Get API key from request header
|
||||
const apiKey = request.headers.get("x-api-key");
|
||||
// Get API key from request header
|
||||
const apiKey = request.headers.get("x-api-key");
|
||||
|
||||
if (!apiKey) {
|
||||
throw new Error("API key is missing");
|
||||
}
|
||||
if (!apiKey) {
|
||||
throw new Error("API key is missing");
|
||||
}
|
||||
|
||||
if (apiKey !== validApiKey) {
|
||||
throw new Error("Invalid API key");
|
||||
}
|
||||
if (apiKey !== validApiKey) {
|
||||
throw new Error("Invalid API key");
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user