Skip to navigation

Get Job Actions

Get Job Actions

Belirtilen işe (jobId) ait tüm aksiyon kayıtlarını — mesajlar, prim/poliçe/zeyil talepleri, red ve onay adımları — en yeni kayıt başta olmak üzere sayfalanmış biçimde döner.


Uç Nokta (Endpoint)

GET {{baseUrl}}/api/offline/jobs/{jobId}/actions


Kullanım

Bir işin aksiyon geçmişini okumak ve tekil aksiyon detaylarına inmeden önce hangi kayıtların bulunduğunu görmek için kullanılır. Önerilen akış:

  1. Authentication Login servisinden token alınır.

  2. Jobs servisinden ilgilenilen işin jobId değeri elde edilir.

  3. Bu servis çağrılarak işin aksiyon listesi sayfalanmış hâlde alınır.

  4. Listedeki bir kaydın detayına inmek için kaydın Id değeri ile Get Job Action By Id çağrılır.

  5. Bir aksiyonun hangi alanlarla (RequestDetails) oluşturulduğu gerekiyorsa kaydın ActionType değeri ile Get Job Action By Stage çağrılır.

💡 Kayıtlar Id alanına göre azalan sırada döner; Page = 1 her zaman en yeni aksiyonları içerir.

⚠️ Message ve Attachments alanları Platform tarafındaki mesaj servisinden zenginleştirilir. Platform servisi yanıt vermezse istek yine 200 OK döner, ancak bu iki alan boş kalır. Bu nedenle boş Message değerini “mesaj yok” olarak yorumlamayın.


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 biçiminde erişim token’ı.

Çağıranın aşağıdaki rollerden en az birine sahip olması gerekir:

RolErişim Kapsamı
InsuranceCompanyAPIUserYalnızca kendisine ait işlerin aksiyonlarına erişir.
InsuranceCompanyAPIAdminToken’daki sigorta şirketlerine ait tüm işlere erişir.
SupervizorToken’daki sigorta şirketlerine ait tüm işlere erişir.

⚠️ İş, her hâlükârda token’daki sigorta şirketi kapsamıyla sınırlıdır. Kapsam dışındaki bir jobId için servis 403 değil 404 Not Found döner; bu, şirket dışı iş kimliklerinin varlığının sızmasını engeller.


İstek Parametreleri

Rota (Route) Parametreleri

ParametreTürZorunluAçıklama
jobIdinteger✅Aksiyonları istenen işin kimliği. Rotada int kısıtı vardır; sayısal olmayan bir değer gönderilirse rota eşleşmez ve 404 döner.

Sorgu (Query) Parametreleri

ParametreTürZorunluAçıklama
pageinteger—Sayfa numarası. Varsayılan 1. 1 veya daha büyük olmalıdır.
pageSizeinteger—Sayfa başına kayıt sayısı. Varsayılan 10. 1 ile 100 arasında olmalıdır.

Örnek İstek:

GET {{baseUrl}}/api/offline/jobs/100931/actions?page=1&pageSize=10
Authorization: Bearer <token>

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

Yanıt gövdesi PagedData yapısındadır.

⚠️ API Newtonsoft.Json DefaultContractResolver ile serileştirilir; alan adları C# property adlarıyla aynı, yani PascalCase döner (TotalCount, Items, JobId …). camelCase bekleyen bir istemci alanları null görür.

AlanTürAçıklama
TotalCountintegerİşe ait toplam aksiyon sayısı.
PageintegerDönen sayfanın numarası.
SizeintegerSayfa başına kayıt sayısı.
TotalPageintegerToplam sayfa sayısı.
HasNextPagebooleanSonraki sayfa var mı.
HasPreviousPagebooleanÖnceki sayfa var mı.
ItemsarrayJobActionDTO kayıtları.

Items nesnesi (JobActionDTO):

AlanTürAçıklama
IdlongAksiyonun benzersiz kimliği. Get Job Action By Id çağrısında jobActionId olarak kullanılır.
JobIdintegerAksiyonun bağlı olduğu işin kimliği.
AgentIdintegerAksiyonun ilişkili olduğu acentenin kimliği.
CreateDatedatetimeAksiyonun oluşturulma tarihi (yyyy-MM-ddTHH:mm:ss).
Messagestringnull
ToFullNamestringnull
FromFullNamestringnull
MessageFromintegerGönderen taraf. MessageSentBy değeri.
MessageTointegerAlıcı taraf. MessageSentBy değeri. Alıcı kullanıcı tanımlı değilse -1 (Tanımsız) döner.
AttachmentsarrayAksiyona ait ekler. Platform mesaj servisinden doldurulur; yoksa boş dizi.
PlatformProposalIdstringnull
ActionTypeintegerAksiyonun stage’i. Stage değeri — tam liste için bknz.

MessageFrom / MessageTo değerleri (MessageSentBy):

DeğerAdAçıklama
-1UndefinedTaraf çözümlenemedi (ör. alıcı kullanıcı atanmamış).
0InsuranceCompanySigorta şirketi kullanıcısı.
1PlatformPlatform (acente) tarafı.

Attachments nesnesi (OfflineAttachmentDTO):

AlanTürAçıklama
AttachmentIdlongEkin kimliği.
JobActionIdlongEkin bağlı olduğu aksiyonun kimliği.
AgentIdintegerEki yükleyen acentenin kimliği.
TitlestringDosya adı / başlığı.
ExtensionstringDosya uzantısı (pdf, docx …).
Bytesstringnull
ErrorExplanationstringnull
PlatformDocumentIdstringnull

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

{
"TotalCount": 25,
"Page": 1,
"Size": 10,
"TotalPage": 3,
"HasNextPage": true,
"HasPreviousPage": false,
"Items": [
{
"Id": 1234,
"JobId": 100931,
"AgentId": 42,
"CreateDate": "2026-05-13T10:30:00",
"Message": "Eksik belge nedeniyle teklif reddedilmiştir.",
"ToFullName": "Ahmet Yılmaz",
"FromFullName": "InsurCo API User",
"MessageFrom": 0,
"MessageTo": 1,
"Attachments": [],
"PlatformProposalId": "PROP-001",
"ActionType": 2
}
]
}

Hatalı Yanıt (400 Bad Request)

Doğrulama hatalarında gövde standart hata zarfıdır ve Response alanı alan bazlı detayları taşır:

{
"Status": false,
"Code": "Validation.General",
"Message": "One or more validation errors occurred",
"Response": [
{ "Field": "PageSize", "Message": "PageSize must be between 1 and 100." }
]
}
AlanTürAçıklama
StatusbooleanHatalı yanıtlarda daima false.
CodestringHata kodu (Validation.General, OfflineJobs.JobNotFound …).
MessagestringHatanın açıklaması.
Responsearraynull

Olası doğrulama mesajları:

AlanMesaj
PagePage must be greater than or equal to 1.
PageSizePageSize must be between 1 and 100.

⚠️ 400 yanıtı üç farklı gövde biçiminde gelebilir: (1) yukarıdaki JSON zarfı — iş kuralı doğrulaması; (2) düz metin — page/pageSize sayısal olmayan bir değer olduğunda model binding hatası; (3) düz metin (İşlem sırasında bir hata oluştu! RequestId: …) — beklenmeyen sunucu hatası [HandleException] filtresi tarafından 400’e çevrildiğinde. İstemcide gövdeyi JSON olarak ayrıştırmadan önce Content-Type kontrol edilmelidir.


Hatalı Yanıt (401 Unauthorized)

Token gönderilmediğinde, geçersiz olduğunda veya süresi dolduğunda 401 Unauthorized döner. Yanıt gövdesi boştur; bilgi WWW-Authenticate başlığındadır.

💡 Token’ın süresi dolduğunda yanıta Token-Expired: true başlığı eklenir. İstemci bu başlığı görürse Refresh Token servisiyle token’ı yenileyip isteği tekrarlamalıdır.


Hatalı Yanıt (403 Forbidden)

İki farklı nedenden dolayı oluşur:

1. Rol yetersizliği — çağıranın InsuranceCompanyAPIUser, InsuranceCompanyAPIAdmin veya Supervizor rollerinden hiçbiri yoksa. Gövde boştur.

2. Token/erişim kontrolü — gövde standart hata zarfıdır:

KodMesajNe zaman
OfflineUsers.InsuranceCompanyNotFoundNo valid insurance company assignment found in token.Token’da sigorta şirketi bilgisi yok.
OfflineUsers.UserIdentityNotResolvedUser identity could not be resolved from token.Token’dan kullanıcı kimliği çözümlenemedi.
OfflineJobs.JobOwnershipDeniedYou do not have permission to access this job.InsuranceCompanyAPIUser rolündeki kullanıcı, kendisine ait olmayan bir işi sorguladı.
{
"Status": false,
"Code": "OfflineJobs.JobOwnershipDenied",
"Message": "You do not have permission to access this job.",
"Response": null
}

Hatalı Yanıt (404 Not Found)

İş bulunamadığında veya iş token’daki sigorta şirketi kapsamı dışında olduğunda döner.

KodMesaj
OfflineJobs.JobNotFoundNo job found for the requested JobId: {jobId}.
{
"Status": false,
"Code": "OfflineJobs.JobNotFound",
"Message": "No job found for the requested JobId: 999999.",
"Response": null
}

Authentication

AuthorizationBearer

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

Path parameters

jobIdintegerRequired

Headers

AuthorizationstringOptional

Query parameters

pageintegerOptional
pageSizeintegerOptional

Response headers

Content-TypestringOptional

Response

OK

Errors

400
Bad Request Error
403
Forbidden Error
404
Not Found Error