Skip to navigation

Service Availabilities By Agent

Service Availabilities By Agent

Bir acentenin kullanabileceği servis operasyonlarını güncel statüleriyle sayfalı döndürür. Kataloğun tamamı değil, yalnızca acentenin ürün yetkisine giren kayıtlar döner.

Uç Nokta (Endpoint)

GET {{baseUrl}}/api/ServiceAvailabilities/agents/:agentId


Kullanım

Bu servis, bir acentenin çalışabildiği servislerin durumunu izlemek için kullanılır. Önerilen akış:

  1. Authentication Login servisinden token alınır.
  2. Bu servis ilgili agentId ile çağrılır ve page değeri HasNextPage false olana kadar artırılır.
  3. Subscribed alanı true olan kayıtlar, acentenin statü değişikliği bildirimi aldığı kayıtlardır.

Kapsam acentenin ürün yetkisinden çözülür:

Kayıt türüDönme koşulu
Ürünlü kayıt (ProductId dolu)Acente tam olarak o ürüne yetkiliyse döner.
Ürün bağımsız kayıt (ProductId = null)Acentenin o şirkette, kaydın ExcludedProductIds listesine girmeyen en az bir ürünü varsa döner.

Kayıtlar şirket adı → servis adı → operasyon adı → ürün adı sırasına göre sıralanır; sıralama sayfalar arasında tutarlıdır.

💡 Hiç ürün yetkisi olmayan acentede Items boş, TotalCount sıfır döner; bu bir hata değildir.

⚠️ Token’ında acente taşıyan entegrasyon kullanıcıları yalnızca kendi acentelerini sorgulayabilir; başka bir acente için istek 403 ile ServiceAvailability.AgentNotPermitted döner.


Kimlik Doğrulama

Bu uç nokta geçerli bir JWT erişim token’ı gerektirir. Token, Authentication Login servisinden alınır ve Authorization başlığında gönderilir.

BaşlıkTürZorunluAçıklama
Authorizationstring✅Bearer <token> biçiminde erişim token’ı.

Token’ın Read yetkisini taşıması gerekir.


İstek Parametreleri (Path Variables)

ParametreTürZorunluMinMaxAçıklama
:agentIdinteger (int32)✅12147483647Servis durumları istenen acentenin kimliği.

İstek Parametreleri (Query Parameters)

ParametreTürZorunluMinMaxAçıklama
pageinteger (int32)—121474836471 tabanlı sayfa numarası. Varsayılan 1.
pageSizeinteger (int32)—1200Sayfa başına kayıt sayısı. Varsayılan ve üst sınır 200; aralık dışı değerler 400 döner.

Örnek İstek:

GET {{baseUrl}}/api/ServiceAvailabilities/agents/1?page=1&pageSize=2
Authorization: Bearer <token>

Başarılı Yanıt (200 OK)

AlanTürAçıklama
TotalCountintegerToplam kayıt sayısı (tüm sayfalar).
PageintegerDönen sayfa numarası (1 tabanlı).
SizeintegerUygulanan sayfa boyutu.
TotalPageintegerToplam sayfa sayısı.
HasNextPagebooleanSonraki sayfanın olup olmadığı.
HasPreviousPagebooleanÖnceki sayfanın olup olmadığı.
Itemsarrayİstenen sayfanın kayıtları.

Items nesnesi:

AlanTürAçıklama
InsuranceCompanyIdintegerKaydın sigorta şirketi kimliği.
ProductIdinteger | nullKaydın ürün kimliği. Ürün bağımsız operasyonlarda null.
ServiceOperationIdintegerKaydın servis operasyonu kimliği.
OutsourceProcessIdinteger | nullKaydın outsource süreci kimliği. Outsource olmayan operasyonlarda null; aynı operasyon farklı süreçler için ayrı kayıt üretir.
InsuranceCompanyNamestringSigorta şirketi adı.
ProductNamestringÜrün adı. Ürün bağımsız operasyonlarda Tüm Ürünler.
ServiceNamestringOperasyonun ait olduğu servis adı.
ServiceOperationNamestringServis operasyonu adı.
OutsourceProcessNamestring | nullOutsource süreci adı. Outsource olmayan operasyonlarda null.
ExcludedProductIdsarrayÜrün bağımsız operasyonun kapsamı dışında bırakılan ürün kimlikleri. Ürünlü kayıtlarda boş dizi.
StatusstringGüncel statü: Active, AutoDisabled, ManualDisabled ya da Unknown.
StatusReasonstring | nullSon statü değişikliğinin gerekçesi. Hiç değişiklik olmadıysa null.
StatusChangedAtdatetime | nullSon statü değişikliğinin zamanı. Hiç değişiklik olmadıysa null.
LastSuccessDatedatetime | nullGözlemlenen son başarılı işlemin zamanı. Henüz gözlem yoksa null.
SubscribedbooleanAcentenin bu kaydın statü değişikliği bildirimlerine abone olup olmadığı.

Örnek Başarılı Yanıt:

{
"TotalCount": 325,
"Page": 1,
"Size": 2,
"TotalPage": 163,
"HasNextPage": true,
"HasPreviousPage": false,
"Items": [
{
"InsuranceCompanyId": 12,
"ProductId": 27,
"ServiceOperationId": 118,
"OutsourceProcessId": null,
"InsuranceCompanyName": "Örnek Sigorta",
"ProductName": "Kasko",
"ServiceName": "ProposalService",
"ServiceOperationName": "Teklif",
"OutsourceProcessName": null,
"ExcludedProductIds": [],
"Status": "Active",
"StatusReason": null,
"StatusChangedAt": null,
"LastSuccessDate": "2026-08-10T09:31:07.44+03:00",
"Subscribed": true
},
{
"InsuranceCompanyId": 12,
"ProductId": null,
"ServiceOperationId": 305,
"OutsourceProcessId": null,
"InsuranceCompanyName": "Örnek Sigorta",
"ProductName": "Tüm Ürünler",
"ServiceName": "PolicyService",
"ServiceOperationName": "PolicyDetail",
"OutsourceProcessName": null,
"ExcludedProductIds": [
44
],
"Status": "AutoDisabled",
"StatusReason": "Son 30 dakikada başarılı işlem üretilmedi.",
"StatusChangedAt": "2026-08-10T10:05:00+03:00",
"LastSuccessDate": "2026-08-10T09:12:44.13+03:00",
"Subscribed": false
}
]
}

Hatalı Yanıt (400 Bad Request)

Hatalar ApiResponse zarfıyla döner:

AlanTürAçıklama
StatusbooleanHatalarda her zaman false.
CodestringHata kodu. Sayfalama doğrulamalarında Validation.General.
MessagestringHata açıklaması.
Responsearray | nullDoğrulama hatalarında { Field, Message } listesi; diğer hatalarda null.

Sayfalama doğrulama hatası — page 1’den küçük ya da pageSize 1–200 aralığı dışında olduğunda:

FieldMessage
PagePage must be greater than or equal to 1.
PageSizePageSize must be between 1 and 200.
{
"Status": false,
"Code": "Validation.General",
"Message": "One or more validation errors occurred",
"Response": [
{
"Field": "PageSize",
"Message": "PageSize must be between 1 and 200."
}
]
}

Geçersiz acente kimliği — agentId sıfır ya da negatif gönderildiğinde:

{
"Status": false,
"Code": "ServiceAvailability.InvalidAgentId",
"Message": "Invalid agentId. AgentId must be greater than zero.",
"Response": null
}

Hatalı Yanıt (401 Unauthorized)

Token gönderilmediğinde, geçersiz olduğunda veya süresi dolduğunda HTTP 401 Unauthorized döner. Yanıt gövdesi boştur.

💡 Token’ın süresi dolduysa yanıtta Token-Expired: true başlığı bulunur. Bu durumda POST /api/authentication/refreshtoken ile yeni token alınmalıdır.


Hatalı Yanıt (403 Forbidden)

Acente kapsamlı bir kullanıcı (token’ında acente taşıyan entegrasyon kullanıcısı), token’ında yer almayan bir acenteyi sorguladığında döner.

{
"Status": false,
"Code": "ServiceAvailability.AgentNotPermitted",
"Message": "The authenticated user is not authorized for agent 999999.",
"Response": null
}

Authentication

AuthorizationBearer

Bearer authentication of the form Bearer <token>, where token is your auth token.

Path parameters

agentIdintegerRequired

Servis durumları istenen acentenin kimliği.

Headers

AuthorizationstringOptional

Query parameters

pageintegerOptional

1 tabanlı sayfa numarası.

pageSizeintegerOptional

Sayfa başına kayıt sayısı.

Response headers

Content-TypestringOptional

Response

OK

Errors

400
Bad Request Error
403
Forbidden Error