SmsKeywordService - inbound anahtar kelimeler için bir yazar (MS1 Görev 3)

FeatureVOIPService
Shipped
27 Ağustos 2026 20:06 UTC
Author
Kamo
Commit
4260460

TODO Task 2 geride kaldı. Bu, bağlı STOP'da doğrulanana kadar BulkTextInboundController'e ulaştı, tanındı, sonra da girdi. DROPPED - son nokta opt-outs kabul etti ve hiçbir şey baskıladı. SmsKeywordService tek yazardır: WORM ConsentRecord ve AjanContactState, yukarıdan gelen kapıyı zaten okur, bir tane İşlem (plan Kararı M2 – leadger artı türetilmiş projeksiyon, iki kaynak değil Gerçek; MS2 kapıyı doğrudan ConsentRecord'u okur, sonra hangileri projeksiyon bir önbellek haline gelir). Sipariş: normalleşme veya reddetme; yorum; idempotency makbunu ekleyin; sonra STOP / START / Y. UNKNOWN hemen geri döner ve hiçbir şey yazar, bu yüzden bir Sıradan mesaj normal işlemden geçer. Kararlar daha sonra tartışmaya değer. * Writes AgentContactState doğrudan AIService aramaktan ziyade. **************** zaten maruz kaldı POST **************** ve hala buradan mümkün olmayan Üç bağımsız neden: VOIPService, AIService'a müşteri sahip değildir; AIService Bu yüzeyi bir DIFFERENT sırrı ile otantikleştirir ************ iç.auth.secret değil); ve son nokta No bare E.164, sadece ************ - ve çıplak bir Sayı tam olarak ne inbound STOP. * İletişim anahtarı "tel:<e164>" AGENT CONTACT STATE benzersizdir (ORGANIZATION ID, CONTACT KEY) ve hiçbir telefon sütunu yok, bu yüzden hiçbir şey yok Başka bir çıplak sayı gidebilir. CONSEQUENCE, NO CLOSED BY MS1: Bu satır bu satır değil Daha sonra "lead:<uid>" aynı insan için sıra, bu yüzden bir kapı danışmanlığı Lider anahtarlanmış sıra hiçbir opt-out görmüyor. MS2 kapıyı okuyarak kapatıyor ConsentRecord, bu sayı anahtarlanmış. * Çıplak bir STOP tüm dört kanalı ayarlar. "Sadece" demiyor ve onu okuyor Bu şekilde onları durdurmak için söyleyen onant e-postasını bırakır. YouTube Destekli SMS SADECE - bir kampanya numarasına yapılan bir YouTube metni SMS ile ilgili kanıtlardır Başka bir şey değil. * Bir null veyag, makbuzu kaydeder ve başka bir şey yapmaz. Hiçbir onay satırı, hayır projeksiyon: null bir organizasyonla ilgili bir ConsentRecord global-epresyondur Duru C1 yasaklar ve **************** nullable = yine de yanlış. Bir STOP'ın kanıtlanması bugün hala bu sessizliği yenmiştir. * Onaylandığında, kullanılan taşıyıcının etkinliğini ve kayıtlarını tercih eder. Twilio's inbound webhook, hiç zaman damgasını taşımıyor, bu yüzden varlık javadoc'in “Oturdan başlayarak, şimdi asla()” bunun için tatmin edici değil. Flowroute does does "timestamp" gönder, böylece InboundSms bir "carrier EventAt' bileşeni ve Flowroute parser bunu okur (Instant / OffsetDateTime / çıplak yerel, normalleştirilmiş UTC; Yok edilemez bir şey çıplak değildir, asla bir tahmin değildir. Onay satırının kanıtıBlob "ConsentedAt Source": "carrier" | "receipt" Bir makbul zamanı Defensible ve bir kumaşı değildir; iki kişi güvenilmezdir Daha sonra, gözden geçirmeyecek olan şey budur. * handle() rekor alır, planın altı pozisyonu parametreleri değil. Planın planı İmza, makbuz zamanı, taşıyıcı olayı zamanı veya ham Kanıt ödeme yükü ve parametrelerinin dördü bitişik Strings idi - transposing “Önümüzden ve ‘to’, onant’ın kendi sayısını sessizce derliyor. VOIPHizmet Uygulamaları kazanımlar kazanır **************** **************** Girişe gerek yok: BasePackages maçları Alt paketler ve com.kamo.z.shared.comms zaten listeleniyor. VoipRepositoryScanTest Arabalar Spring Data's JpaRepositoriesRegistrar aynı paket listesinde ve Üç havuzun SmsKeywordService enjektelerini iddia ediyor. Tam @SpringBootTest boot bu hizmette mevcut değildir - test veritabanı yok, Test kaynakları yok, mevcut bağlam testi yok - bu yüzden kayıtar Bu aslında sonucu karar verir, bir veri kaynağı olmadan. TDD - başarısızlıkları gözlemledi, fiilatim. Uygulamadan önce Red: [ERROR] SmsKeywordServiceTest.java sembolü bulamaz [ERROR] sembolü: sınıf SmsKeywordService [ERROR] sembolü: sınıf InboundKeyword Event [ERROR] konumu: sınıf ******************** [INFO] BUILD FAILURE [ERROR] **************** sembolü bulamaz [ERROR] sembolü: yöntem taşıyıcı EventAt() Green After: SmsKeywordServiceTest 17/17; tam süit 314/314. Mutasyon 1 - ConsentRecord yazılarından org kaldırıldı: [ERROR] Testler çalışır: 17 Başarısızlık: 2, Hatalar: 0 <<< FAILURE! beklenen: 100L Ama öyleydi: null [ERROR] **************** [Bir null veyag ile onay sırası küresel bir baskı ile - duruş C1 yasaklar] [ERROR] **************** Mutasyon 2 - makbuz ekler: [ERROR] Testler çalışır: 17 Başarısızlık: 3, Hatalar: 0 <<< FAILURE! Wanted ama çağrılmadı: [ERROR] **************** [ERROR] **************** [ERROR] **************** NOT: Plan bu mutasyonun RETRY testini kırmızıya dönüştürmesi gerektiğini söylüyor. Değil. ************ stubs var() gerçek için ön kontrol, bu yüzden Ekleden önce kısa devreler ve bu mutasyon altında kalır. The The The The The The The The Yanlış test olarak adlandırılan plan. Aşağıdaki Mutasyon 2b, yeniden denemeyi kapsayan kişidir. Yol ve M1 idempotency iddiasını çalıştırmadan önce, bir süre dinlenmiş olurdu Başka bir şey ispatlayan mutasyon. Mutation 2b - mevcut() ön kontrol yerine kaldırıldı: [ERROR] Testler çalışır: 17 Başarısızlık: 2, Hatalar: 0 <<< FAILURE! **************** Asla burada istemedi: [ERROR] **************** [ERROR] **************** Mutation 3 – Sadece dört kanal yerine SMS tercih etti: [ERROR] Testler çalışır: 17 Başarısızlık: 1, Hatalar: 0 <<< FAILURE! Doğru olmanın değerini beklemek ama yanlıştı [ERROR] **************** Mutasyon 4 - ******************** taramadan düştü paketler, yani CrashLoop'un kendisi: [ERROR] Testler çalışır: 3, Başarısızlar: 2, Hatalar: 0 <<< FAILURE! [ERROR] **************** [ConsentRecordRepository'un bir tanımı yoktur - ******************************************************** @EnableJpaRepositories tarafından kaplı değildir. Bu bir runtime null değil: The The pod CrashLoops'a yönelik REFUSES TOMI ve pod CrashLoops.) [ERROR] **************** [Bu testin prototipi, VOIPServiceApp'in gerçek annotasyonundan sürüklendi] Tüm reverted. İptal ettikten sonra Full suite: Testler çalışır: 314, Başarısızlar: 0, Hatalar: 0. DDL LANDED değil. Bu, kamo-shared-library'ye bağlıdır comms sms inbound receipt ve ******** Ne bunlardan hiçbiri Henüz veritabanında var. Ortak bir kavanoza karşı yerel olarak inşa edilmiş bir PRIVATE -Dmaven.repo.local; -/.m2s 1.6.0 jar daha önce ve öncesinde doğrulandı. After (md5 ****************************

All changes

Kargoyu gördüğünüz gibi?

İş alanınızda bu güncellemelerden her biri otomatik olarak. Ücretsiz başlayın ve haftadan sonra büyümesini izleyin.

Sonsuza Kadar Ücretsiz BaşlangıçFırsatları Görüntüle