Bir üyeyi kaydetme

Üye kayıtları oluşturur veya günceller. API, oluşturma ya da güncelleme yapılacağına member_id değerine göre karar verir.

Parametreler

  • members array zorunlu

    Kaydedilecek Member nesnelerinin dizisi. En iyi performans için önerilen üst sınır: istek başına 1000 öğe. API, öğeleri işlenmek üzere otomatik olarak gruplar. Her öğe facility_id (linking_identifier kullanılmıyorsa zorunlu) veya linking_identifier (facility_id kullanılmıyorsa zorunlu) içermelidir.

    Bir üye access_time_windows içerdiğinde access_time_windows_revision değerini de içermelidir. Dizi bir yama değil, eksiksiz bir kaynak anlık görüntüsüdür. Mevcut anlık görüntüyü korumak için göndermeyin veya kaynağa ait tüm pencereleri iptal etmek için daha yeni bir revizyonla [] gönderin. Bu alanı etkinleştirmeden önce Access Time Windows kılavuzunu okuyun.

Döndürülen değer

Eşitleme işlemini onaylayan basit bir mesaj döndürür.

Bir pencere anlık görüntüsü idempotent yeniden oynatma veya eski olduğu için atlama olarak bildirilse bile üye profili alanları normal upsert işlemleri olarak kalır. Aynı revizyona sahip, farklı yük içeren çakışan bir anlık görüntü değiştirilmeden yeniden denenemez; kaynak durumuyla mutabakat sağlayın ve daha yeni bir revizyon gönderin.

İstek

curl -X POST https://partner-api.performancehub.co/partner/v1/members \
  -u sk_live_YOUR_PARTNER_SECRET_KEY: \
  -H "Content-Type: application/json" \
  -d '{
    "members": [
      {
        "member_id": "member_11111",
        "facility_id": "550e8400-e29b-41d4-a716-446655440000",
        // "linking_identifier": "branch_downtown",  // If using linking identifier
        "first_name": "John",
        "last_name": "Smith",
        "email": "john.smith@example.com",
        "mobile_phone": "+61 412 345 678",
        "date_of_birth": "1985-06-15",
        "gender": "male",
        "type": "member",
        "tags": ["vip", "personal-training"],
        "profile_picture": "/9j/4AAQSkZJRgABAQAAAQ...",
        "membership_status": "current",
        "created": "2024-01-15T10:30:00Z",
        "updated": "2024-01-20T14:45:00Z",
        "access_time_windows_revision": 1842,
        "access_time_windows": [
          {
            "external_id": "access-4b1782",
            "kind": "absolute",
            "from": 1792053000,
            "to": 1792058400,
            "timezone": "Australia/Perth",
            "scope_key": "after_hours_entry",
            "label": "Temporary site access"
          }
        ],
        "address": {
          "address_line_1": "456 Bourke Street",
          "address_line_2": "Apt 12",
          "city": "Melbourne",
          "state": "VIC",
          "postal_code": "3000",
          "country": "AU",
          "country_name": "Australia"
        },
        "membership_plans": [
          {
            "membership_plan_id": "plan_99999",
            "name": "Unlimited Monthly",
            "start_date": "2024-01-01T00:00:00Z",
            "status": "current",
            "is_current": true,
            "end_date": null
          }
        ]
      }
    ]
  }'

Yanıt

Eşitleme işlemine ilişkin meta verilerle birlikte bir başarı mesajı döndürür.

{
  "message": "Member sync successful.",
  "metadata": {
    "success": 245,
    "skipped": 5,
    "skipped_items": [
      {
        "member_id": "member_123",
        "facility_id": null,
        "reason": "Facility integration is disabled in facility-partner-config"
      }
    ]
  }
}

Meta veri alanları:

  • success - Başarıyla işlenen üye sayısı
  • skipped - Atlanan üye sayısı (varsa)
  • skipped_items - Atlanan üyelerin nedenleriyle birlikte dizisi (varsa)
  • dry-run - dryrun anahtar türü kullanılıyorsa Boolean bayrak (varsa)