Takazudo Modular Docs

Type to search...

to open search from anywhere

POST /api/admin-reservations-list

POST /api/admin-reservations-list

List reservations with optional filtering.

Request

Method

POST

Headers

HeaderValue
AuthorizationBearer {ADMIN_API_TOKEN}
Content-Typeapplication/json

Body

{
  "status": "pending",
  "productSlug": "oxi-one-mk2"
}

Parameters

FieldTypeRequiredDescription
statusstringNoFilter by status: pending, confirmed, fulfilled, cancelled
productSlugstringNoFilter by product slug

All parameters are optional. Omit to return all reservations.

Response

Success (200)

{
  "success": true,
  "reservations": [
    {
      "id": "res_1706889600000-a1b2c3",
      "name": "山田太郎",
      "email": "yamada@example.com",
      "productSlug": "oxi-one-mk2",
      "status": "pending",
      "notes": "",
      "createdAt": "2024-02-02T10:00:00.000Z"
    },
    {
      "id": "res_1706889500000-d4e5f6",
      "name": "田中花子",
      "email": "tanaka@example.com",
      "productSlug": "oxi-one-mk2",
      "status": "confirmed",
      "notes": "電話連絡済み",
      "createdAt": "2024-02-01T09:00:00.000Z"
    }
  ]
}

Reservation Object

FieldTypeDescription
idstringUnique reservation ID
namestringCustomer’s name
emailstringCustomer’s email address
productSlugstringProduct identifier
statusstringStatus: pending, confirmed, fulfilled, cancelled
notesstringAdmin notes (empty string if none)
createdAtstringISO 8601 timestamp of reservation creation

Unauthorized (401)

{
  "success": false,
  "error": "Unauthorized"
}

Example

cURL

# Get all reservations
curl -X POST https://takazudomodular.com/api/admin-reservations-list \
  -H "Authorization: Bearer YOUR_ADMIN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'

# Filter by status
curl -X POST https://takazudomodular.com/api/admin-reservations-list \
  -H "Authorization: Bearer YOUR_ADMIN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"status": "pending"}'

# Filter by product and status
curl -X POST https://takazudomodular.com/api/admin-reservations-list \
  -H "Authorization: Bearer YOUR_ADMIN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"status": "confirmed", "productSlug": "oxi-one-mk2"}'

JavaScript (fetch)

const response = await fetch('/api/admin-reservations-list', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${ADMIN_API_TOKEN}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    status: 'pending',
  }),
});

const data = await response.json();

if (data.success) {
  console.log(`Found ${data.reservations.length} reservations`);
  data.reservations.forEach((res) => {
    console.log(`${res.name} (${res.email}) - ${res.status}`);
  });
}

Implementation Details

Source File

netlify/functions/admin-reservations-list.ts

Behavior

  1. Validates Bearer token authentication
  2. Parses optional filter parameters from request body
  3. Fetches all reservations from Netlify Blobs
  4. Applies filters (status, productSlug) if provided
  5. Sorts by createdAt descending (newest first)
  6. Returns filtered reservation list

Sorting

Results are sorted by createdAt in descending order (newest first).

Status Values

StatusDescription
pendingNew reservation, awaiting confirmation
confirmedReservation confirmed by admin
fulfilledProduct delivered/picked up
cancelledReservation cancelled