# Mobil Onay ###### tags: `ready` Organizasyon kullanıcılarının banka tarafından kullanılan uygulamalarda kullandığı Mobil Internet Bankacılığı uygulamacılığı üzerinden onay verebileceği bir alt yapıdır. İki bileşenli doğrulama sağlandığı için kullanıcılar için yeterli güvenlik seviyesine ulaşılır. ## Temel Hedefler * Kullanıcı Mobil İnternet Bankacılığına bireysel hakları ile giriş yapacaktır. * Mobil İnternet Bankacılığı eğer kullanıcı çalışan ise *Ürün ve Hizmetler* menüsü altına **Çalışan** kutusu ekleyecek. Ve altına da **Bekleyen Onaylar** menüsü ekleyecek. * Temel Bankacılık maker/checker durumundaki işlemlere onay verilebilecek * Ek olarak farklı uygulamalar için (Azure DevOps vs.) onay mekanizması ekleme yetkinliği sunacak. * Onay verilecek konu ile ilgili dinamik olarak içerik sunulabilecek. * Onay verilecek konu ile ilgili birden fazla aksiyon (Onay, Ret, Şartlı Onay gibi.) verilebilecek. ## Servisler ### **GET** /is-staff/approval/list/{TCKN}*?page={page}&page-size={page-size}* Bir çalışana ait bekleyen onayları getirir. Farlı kaynaklardan toparlanan ve kullanıcıdan onay bekleyen tüm işlemler liste olarak döner. Sayfalama için **page** parametresi bulunmaktadır. İlk sayfa için **1** geçilir. Gönderilmediği takdirde varsayılan değer **1** kaul edilir. **page-size** ile sayfa boyutu belirlenir. Gönderilmediği takdirde **10** kabul edilir. Dönüş değeri bir listedir; ```json= { "item": [ { "id": "16725", "process": "EFT Limit Aşım Onayı", "state": "GMY Onayı", "summary": "Ahmet Paralı - 2,000,000 TL" }, { "id": "16db97df-efe7-49e6-8377-eaeda60739e1", "process": "Code Review Onayı", "state": "Approve", "summary": "Pusula Branch Merge - İYS Entegrasyonu" } ], "has-next-page": false } ``` * **id**: Onaylar için tekil numaradır. Süreç özelinde tekil olmalıdır. * **process**: Onaylanacak işlemin kaynağını tanımlar, sistem adı olabileceği gibi sistem içeriisndeki sürecin adı da olabilir. * **state**: İşlemin bulunduğu aşamadır. Bir işlem için birden fazla aşamada onay verilebilir. Bu yüzden aşama bilgisi gereklidir. * **summary**: listeleme ekranında bir kısa birsatır olarak gösterilecek işlem ile ilgili detay bilgi. * **has-next-page**: Sayfalama amaçlı kullanılacak bilgi. True olduğu sürece sayfa kaydırıldığında kayıtlar yüklenmeye devam eder. ### **GET** /is-staff/approval/details/{process}/{id} Onaylanacak işlemle ilgili detay biglieri getirir. İşlemin süreci ve süreç içerisindeki tekil numarası geçilerek gerekli bilgiler istenir. Dönüş değeri işlemin içerdiği bilgileri ve işlemle ilgili alınabilecek aksiyonları belirler. ```json= { "id": "6986585", "process": "EFT İşlem Onayı", "properties": [ { "label": "Talep Tarihi", "value": "11 Kasım 2020" }, { "label": "Müşteri No", "value": "999666999" }, { "label": "Müşteri Adı", "value": "Uğur KARATAŞ" }, { "label": "Tutar", "value": "12.500 TL" } ], "actions": [ { "action": "Onay", "button-type": "default-positive", "is-description-required": false }, { "action": "Ret", "button-type": "negative", "is-description-required": true }, { "action": "Şartlı Onay", "button-type": "positive", "is-description-required": true } ] } ``` **properties** dizin şeklinde kayıtla ilgili bildileri döner * **label** alanı verinin ne olduğu bilgisini * **value** alanı verinin kendisinin içerir* **actions** dizin şeklinde kayıtla ilgili aksiyonları döner. Bu bilgiler ile kullanıcı arabiriminde **button**'lar oluşturulur. * **action** Button ile gerçekleşecek eylemi ve aynı zamanda button üzerine yazılacak metni içerir. * **button-type** Button'un görününde kullanılacak stili belirler. Olası değerler: *positive,negative,default-positive,default-negative* * **is-description-required** alanı ile button seçilirse açıklama girilme zorunluğu kontrol edilir. ### **POST** /is-staff/approval Bu servis ile kullanıcının aksiyonu alınır ve gerekli sistemlere aktarılır. ```json= { "id": "6986585", "process": "EFT İşlem Onayı", "action": "Onay", "description": "Güle güle harca :)" } ```