JSON Formatında TC Kimlik No Kontrolü
Bu groovy kodu ilk olarak TC kimlik numarasının karakter uzunluğunu kontrol eder. Eğer uygunsa, TC kimlik numarasını belirli bir algoritma ile doğrular. Bu doğrulama adımları, TC kimlik numarasının belirli matematiksel hesaplamalarını içerir. Herhangi bir hata durumunda requestErrorMessageToTargetAPI değişkenine uygun bir hata mesajı atanır ve isteğin backend tarafına gitmesi engellenmiş olur.
import groovy.json.JsonSlurper
// JSON verilerini işlemek için bir ayrıştırıcı (parser) oluştur
def parser = new groovy.json.JsonSlurper()
// Gelen JSON verisini ayrıştır
def jsonResp = parser.parseText(requestBodyTextFromClient)
// JSON'dan alınan TC kimlik numaralarını al
def requestingUserIdentityCardNo = jsonResp.requestingUserIdentityCardNo
def requestedIdentityCardNo = jsonResp.requestedIdentityCardNo
// TC kimlik numarasını doğrulamak için metot
def validateTCKN(variableToCheck) {
// TC kimlik numarasının uzunluğunu ve geçerliliğini kontrol et
if (!variableToCheck || variableToCheck.length() != 11) {
requestErrorMessageToTargetAPI = 'Please send a valid parameter: ' + variableToCheck + '.'
} else {
// TC kimlik numarasını matematiksel olarak doğrula
def tcArr = variableToCheck.substring(0, 11).split('')
def tek = tcArr[0].toInteger() + tcArr[2].toInteger() + tcArr[4].toInteger() + tcArr[6].toInteger() + tcArr[8].toInteger()
def cift = tcArr[1].toInteger() + tcArr[3].toInteger() + tcArr[5].toInteger() + tcArr[7].toInteger()
tek = tek * 7
def sonuc = tek - cift
// Doğrulama hatası durumunda hata mesajı oluştur
if (sonuc % 10 != tcArr[9].toInteger()) {
requestErrorMessageToTargetAPI = 'Please send a valid parameter: ' + variableToCheck + '.'
}
def tcToplam = 0
for (int i = 0; i < 10; i++) {
tcToplam += tcArr[i].toInteger()
}
// Doğrulama hatası durumunda hata mesajı oluştur
if (tcToplam % 10 != tcArr[10].toInteger()) {
requestErrorMessageToTargetAPI = 'Please send a valid parameter: ' + variableToCheck + '.'
}
}
}
// Her iki TC kimlik numarasını da doğrula
validateTCKN(requestingUserIdentityCardNo)
validateTCKN(requestedIdentityCardNo)
GROOVY
#Sample Request:
{"requestingUserIdentityCardNo": 11111111110, "requestedIdentityCardNo":11111111112 }
GROOVY