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