ModelInstance.save fonksiyonundaki hata yüzünden kullanıcılarda Model.isFlex değeri false yani şemadaki alanların dışına çıkılamadığı kayıtlarda bazı değerler kaydedilecek kayıtta olduğu halde içine şemadaki varsayılan değerler yazılıyordu.
Yaptığım inceleme sonucunda hatanın şema değerlerini atayan ve objeleri kaydederken JSON'a çeviren safeWrite fonksiyonu içinde buldum. Fonksiyon yazılırken mantıksal bir hata yapılmış ve gelen veri içindeki bazı değerlerin ezilmesi daha da önemlisi şemanın istenmeyen bir şekilde değiştirilmesi mümkün hale getirilmiş.
Şema ile yapılan atama işlemlerini tamamen ortadan kaldırarak şema kullanımını daha güvenli hale getirdim. İleriki süreçte daha güvenli olması için şema tamamen readonly hale getirlimelidir. Kod içinde mantıksal değişiklik de yaparak fonksiyonu düzgün çalışır hale getirdim.
Kod Çıktısı
Model'in isFlex değeri false olduğu için gelen veri içindeki sadece şemada bulunan alanlar ayıklanmalı eğer bir key şemada var fakat gelen veride yoksa şemadaki varsayılan değeri otomatik olarak atanmalıdır.
data değişkeni gelen veriyi, schema değişkeni şemayı ve temp ise çıktıyı temsil etmektedir.
Bu yapıya göre b ve c keyleri ortaktır ve d şemada olduğu için çıktıya eklenmelidir.
Eski mantıksal işleyişe göre:temp=schema atamasından dolayı şemanın da değeri değişmekteydi.
Yeni mantıksal işleyişe göre:
ModelInstance.save
fonksiyonundaki hata yüzünden kullanıcılardaModel.isFlex
değerifalse
yani şemadaki alanların dışına çıkılamadığı kayıtlarda bazı değerler kaydedilecek kayıtta olduğu halde içine şemadaki varsayılan değerler yazılıyordu.Yaptığım inceleme sonucunda hatanın şema değerlerini atayan ve objeleri kaydederken JSON'a çeviren
safeWrite
fonksiyonu içinde buldum. Fonksiyon yazılırken mantıksal bir hata yapılmış ve gelen veri içindeki bazı değerlerin ezilmesi daha da önemlisi şemanın istenmeyen bir şekilde değiştirilmesi mümkün hale getirilmiş.Şema ile yapılan atama işlemlerini tamamen ortadan kaldırarak şema kullanımını daha güvenli hale getirdim. İleriki süreçte daha güvenli olması için şema tamamen
readonly
hale getirlimelidir. Kod içinde mantıksal değişiklik de yaparak fonksiyonu düzgün çalışır hale getirdim.Kod Çıktısı
Model'in
isFlex
değerifalse
olduğu için gelen veri içindeki sadece şemada bulunan alanlar ayıklanmalı eğer bir key şemada var fakat gelen veride yoksa şemadaki varsayılan değeri otomatik olarak atanmalıdır.data
değişkeni gelen veriyi,schema
değişkeni şemayı ve temp ise çıktıyı temsil etmektedir.Bu yapıya göre
b
vec
keyleri ortaktır ved
şemada olduğu için çıktıya eklenmelidir.Eski mantıksal işleyişe göre:
temp=schema
atamasından dolayı şemanın da değeri değişmekteydi. Yeni mantıksal işleyişe göre:Close #27