Code Explainers

Code explainers tagged #validation

go
package handlers
 
import (
	"net/http"

Query-string filtering in Gin with GORM

query-binding validation conditional-queries
Intermediate 8 steps
typescript
const ISO_DURATION = /^P(?:(\d+(?:\.\d+)?)Y)?(?:(\d+(?:\.\d+)?)M)?(?:(\d+(?:\.\d+)?)W)?(?:(\d+(?:\.\d+)?)D)?(?:T(?:(\d+(?:\.\d+)?)H)?(?:(\d+(?:\.\d+)?)M)?(?:(\d+(?:\.\d+)?)S)?)?$/;
 
const SECONDS_PER = {
  years: 365 * 24 * 60 * 60,

Parsing ISO 8601 durations to seconds

regex parsing iso-8601
Intermediate 7 steps
python
import click
 
 
@click.command()

Building a typed CLI with Click

cli decorators validation
Intermediate 7 steps
typescript
import { IsInt, IsOptional, Max, Min } from 'class-validator';
import { Type } from 'class-transformer';
 
export class PaginationQueryDto {

Type-safe pagination queries in NestJS

pagination validation dto
Intermediate 7 steps
go
package handlers
 
import (
	"net/http"

Validating query params with Gin binding tags

validation struct-tags pagination
Intermediate 8 steps
ruby
class PaymentMethod < ApplicationRecord
  belongs_to :account
 
  encrypts :card_number, deterministic: false

How Rails encrypts sensitive payment fields

encryption validation scopes
Intermediate 9 steps
ruby
class SignupValidator
  EMAIL_REGEX = /\A[^@\s]+@[^@\s]+\.[^@\s]+\z/
  MIN_PASSWORD_LENGTH = 8
 

Building a plain-Ruby signup validator

validation regex default-hash
Intermediate 7 steps
ruby
class DurationParser
  UNIT_SECONDS = {
    'w' => 604_800,
    'd' => 86_400,

Parsing duration strings into seconds in Ruby

parsing regular-expressions validation
Intermediate 7 steps
ruby
class User < ApplicationRecord
  has_secure_password
 
  normalizes :email, with: ->(email) { email.strip.downcase }

Normalizing user input in Rails models

normalization validation data integrity
Intermediate 6 steps
rust
use std::fmt;
use std::str::FromStr;
 
#[derive(Debug, Clone, PartialEq, Eq, Hash)]

A validated Email newtype in Rust

newtype validation error-handling
Intermediate 9 steps
python
from datetime import date
from enum import Enum
from typing import Annotated
 

Reusable query params with Pydantic in FastAPI

query-parameters validation pagination
Intermediate 8 steps
typescript
import { Component, Input, OnInit } from '@angular/core';
import { FormBuilder, FormGroup, FormArray, FormControl, Validators, ValidatorFn } from '@angular/forms';
 
interface FieldSchema {

Building dynamic reactive forms in Angular

reactive-forms dynamic-forms validation
Intermediate 8 steps
php
<?php
 
namespace App\Http\Requests;
 

How a Laravel FormRequest validates invoices

validation authorization form-request
Intermediate 6 steps
go
package handlers
 
import (
	"net/http"

Struct-level validation for partial updates in Gin

validation struct-tags partial-update
Intermediate 7 steps
python
from decimal import Decimal
 
from django.db import transaction
from django.core.exceptions import ValidationError

Placing an order atomically in Django

transactions row-locking concurrency
Advanced 9 steps
java
@RestController
@RequestMapping("/api/products")
@RequiredArgsConstructor
public class ProductSearchController {

Binding paged search filters in Spring

data-binding validation pagination
Intermediate 7 steps
rust
use axum::{
    async_trait,
    extract::{rejection::JsonRejection, FromRequest, Request},
    http::StatusCode,

A validating JSON extractor in Axum

extractors validation error-handling
Intermediate 7 steps
python
import hashlib
from pathlib import Path
 
 

Streaming SHA-256 checksums in Python

hashing file-io streaming
Intermediate 6 steps