eletrotupi / tcc/ commit / e263ad0

api/utils: replace with a very basic dummy ts versions

Pedro Lucas Porcellis porcellis@eletrotupi.com · 7 months ago e263ad00ec6c27b39fb90fe71cd81980a32b8790 Browse files
Parents bd44009
Changed files
2
Additions
+21
Deletions
-26
api/src/utils/emotions.js → api/src/utils/emotions.ts
1 1
// Emotion types enum
2 2
export const Emotions = {
3 3
  JOY: 'joy',
4 4
  TRUST: 'trust',
5 5
  FEAR: 'fear',
98 98

99 99
  stats.average = totalIntensity / moodComponents.length;
100 100

101 101
  return stats;
102 102
}
api/src/utils/validators.js → api/src/utils/validators.ts
1 +
import { parseISO, isValid, isFuture, isAfter } from 'date-fns';
2 +

1 3
// Email validation
2 -
export function isValidEmail(email) {
4 +
const isValidEmail = (email: string) => {
3 5
  const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
4 6
  return emailRegex.test(email);
5 7
}
6 8

7 9
// Password validation (minimum 6 characters)
8 -
export function isValidPassword(password) {
10 +
const isValidPassword = (password: string) => {
9 11
  return password && password.length >= 6;
10 12
}
11 13

12 -
import { parseISO, isValid, isFuture, isAfter } from 'date-fns';
13 -

14 14
// Date validation
15 -
export function isValidDate(dateString) {
15 +
const isValidDate = (dateString: string) => {
16 16
  if (!dateString) return false;
17 17
  try {
18 18
    const date = parseISO(dateString);
19 19
    return isValid(date);
20 20
  } catch {
21 21
    return false;
22 22
  }
23 23
}
24 24

25 25
// Check if date is not in the future
26 -
export function isNotFutureDate(dateString) {
26 +
const isNotFutureDate = (dateString: string) => {
27 27
  if (!dateString) return false;
28 28
  try {
29 29
    const date = parseISO(dateString);
30 30
    return isValid(date) && !isFuture(date);
31 31
  } catch {
32 32
    return false;
33 33
  }
34 34
}
35 35

36 36
// Validate date range
37 -
export function isValidDateRange(startDate, endDate) {
37 +
const isValidDateRange = (startDate: string, endDate: string) => {
38 38
  if (!startDate || !endDate) return false;
39 39
  try {
40 40
    const start = parseISO(startDate);
41 41
    const end = parseISO(endDate);
42 42

49 49
    return false;
50 50
  }
51 51
}
52 52

53 53
// Sanitize string input
54 -
export function sanitizeString(str) {
54 +
const sanitizeString = (str: string) => {
55 55
  if (typeof str !== 'string') return '';
56 56
  return str.trim().slice(0, 500); // Limit to 500 chars
57 57
}
58 58

59 59
// Validate required fields
60 -
export function validateRequiredFields(data, fields) {
60 +

61 +
const validateRequiredFields = (data: Record<string, unknown>, fields: string[]) => {
61 62
  const missing = [];
62 63

63 64
  for (const field of fields) {
64 65
    if (data[field] === undefined || data[field] === null || data[field] === '') {
65 66
      missing.push(field);
71 72
    missing
72 73
  };
73 74
}
74 75

75 76
// Validate number in range
76 -
export function isInRange(value, min, max) {
77 +
const isInRange = (value: number, min: number, max: number) => {
77 78
  const num = Number(value);
78 79
  return !isNaN(num) && num >= min && num <= max;
79 80
}
80 81

81 -
// Parse and validate integer
82 -
export function parseIntOrDefault(value, defaultValue = null) {
83 -
  const parsed = parseInt(value, 10);
84 -
  return isNaN(parsed) ? defaultValue : parsed;
85 -
}
86 -

87 -
// Validate pagination parameters
88 -
export function validatePagination(page, limit) {
89 -
  const validPage = Math.max(1, parseIntOrDefault(page, 1));
90 -
  const validLimit = Math.min(100, Math.max(1, parseIntOrDefault(limit, 20)));
91 -

92 -
  return {
93 -
    page: validPage,
94 -
    limit: validLimit,
95 -
    offset: (validPage - 1) * validLimit
96 -
  };
97 -
}
82 +
export {
83 +
  validateRequiredFields,
84 +
  sanitizeString,
85 +
  isInRange,
86 +
  isValidEmail,
87 +
  isValidPassword,
88 +
  isValidDateRange,
89 +
  isNotFutureDate,
90 +
  isValidDate,
91 +
};