Code Explainers

Code explainers tagged #validation

php
<?php
 
namespace App\Http\Requests;
 

Validating nested order payloads in Laravel

validation authorization nested-data
Intermediate 8 steps
javascript
const DISCOUNT_CODES = {
  SAVE10: { type: 'percent', value: 0.1 },
  WELCOME5: { type: 'fixed', value: 5 },
  FREESHIP: { type: 'shipping', value: Infinity },

How a cart total is calculated with discounts

reduce lookup-table options-object
Intermediate 8 steps
python
from decimal import Decimal
from typing import Annotated
 
from fastapi import APIRouter, status

Cross-field order validation in FastAPI

validation pydantic-models decimal-money
Intermediate 7 steps
python
from functools import wraps
from flask import request, jsonify
 
 

A parameterized query-param decorator in Flask

decorators validation type-casting
Intermediate 8 steps
python
from typing import Optional
 
from fastapi import APIRouter, Depends, HTTPException, status
from pydantic import BaseModel, EmailStr, Field

How PATCH partial updates work in FastAPI

partial-update validation dependency-injection
Intermediate 8 steps
typescript
import { Component, inject } from '@angular/core';
import { FormBuilder, ReactiveFormsModule, Validators } from '@angular/forms';
import { HttpClient, HttpErrorResponse } from '@angular/common/http';
import { finalize } from 'rxjs';

A reactive signup form in Angular

reactive-forms validation dependency-injection
Intermediate 10 steps
php
<?php
 
namespace App\Rules;
 

How a custom coupon rule validates in Laravel

validation eloquent business-rules
Intermediate 7 steps
java
public final class SensitiveDataMasker {
 
    private static final Pattern CARD_NUMBER = Pattern.compile("\\b(?:\\d[ -]*?){13,19}\\b");
    private static final Pattern EMAIL = Pattern.compile("[A-Za-z0-9._%+-]+@([A-Za-z0-9.-]+\\.[A-Za-z]{2,})");

Masking sensitive data with regex in Java

regex data-masking luhn-algorithm
Intermediate 8 steps
python
from django.db import transaction
from django.db.models import F
from django.http import JsonResponse
from django.views.decorators.http import require_POST

Safely reordering tasks with a Django action

transactions row-locking validation
Advanced 8 steps
javascript
import { after } from "next/server";
import { NextResponse } from "next/server";
import { z } from "zod";
import { resend } from "@/lib/resend";

Deferring work with after() in Next.js

validation background-tasks route-handlers
Intermediate 8 steps
python
import os
from uuid import uuid4
 
from flask import Blueprint, current_app, jsonify, request, url_for

How a Flask image upload endpoint works

file-upload validation image-processing
Intermediate 9 steps
php
<?php
 
namespace App\Http\Controllers;
 

Building a multi-step onboarding wizard in Laravel

session-state validation multi-step-forms
Intermediate 9 steps
typescript
import {
  IsEmail,
  IsNotEmpty,
  IsOptional,

How validation groups reuse one DTO in NestJS

validation dto decorators
Intermediate 9 steps
typescript
import { InjectionToken, inject, Provider, isDevMode } from '@angular/core';
import { WINDOW } from './window.token';
 
export interface AnalyticsConfig {

Layered config with an Angular InjectionToken

dependency-injection configuration factory-provider
Intermediate 8 steps
javascript
const IBAN_LENGTHS = {
  DE: 22, FR: 27, GB: 22, ES: 24, IT: 27,
  NL: 18, BE: 16, CH: 21, AT: 20, PT: 25,
};

How IBAN validation works in JavaScript

validation checksum modular-arithmetic
Intermediate 8 steps
go
func UploadDocument(c *gin.Context) {
	fileHeader, err := c.FormFile("file")
	if err != nil {
		c.JSON(http.StatusBadRequest, gin.H{"error": "file is required"})

Handling multipart uploads in Gin

multipart-upload validation error-handling
Intermediate 9 steps
java
@RestController
@RequestMapping("/api/products")
@Validated
public class ProductSearchController {

Validating query params in a Spring controller

validation pagination rest-api
Intermediate 8 steps
go
package handlers
 
import (
	"net/http"

Custom validators and binding in Gin

validation struct-tags error-handling
Intermediate 8 steps