# 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 :)"
}
```