SmsKeywordService - इनबाउंड कीवर्ड्स (MS1 टास्क 3) के लिए एक लेखक

FeatureVOIPService
शिप
27 अगस्त 2026 को 8:06 pm बजे UTC
लेखक
Kamo
Commit
4260460

TODO कार्य 2 को पीछे छोड़ देता है। जब तक यह सत्यापित नहीं हो पाता बल्कटेक्स्टइनबाउंड कंट्रोलर तक पहुंच गया, को मान्यता दी गई थी, लॉग इन किया गया था, और तब वह था। DROPPED — समापन बिंदु ऑप्ट-आउट स्वीकार किया और कुछ भी नहीं दबाया। SmsKeywordService एकल लेखक है: यह WORM ConsentRecord को प्रस्तुत करता है और एजेंटसंपर्कराज्य पंक्ति को पहले से ही पढ़ने के लिए आउटबाउंड गेट अद्यतन करता है, एक में लेन-देन (योजना निर्णय M2 - लेजर प्लस व्युत्पन्न प्रक्षेपण, नहीं दो स्रोतों सच्चाई का; MS2 गेट को सीधे कॉन्सेंटरिकॉर्ड पढ़ता है, जिसके बाद उसके बाद प्रक्षेपण एक कैश बन जाता है। आदेश: सामान्यीकरण या मना करना; व्याख्या; idempotency रसीद डालें; फिर STOP / START / HELP। UNKNOWN तुरंत रिटर्न करता है और कुछ भी नहीं लिखते हैं, इसलिए एक सामान्य संदेश सामान्य हैंडलिंग के माध्यम से गिर जाता है। बाद में बहस के निर्णय। * AIService को कॉल करने के बजाय सीधे एजेंट संपर्क स्टेट को राइट करता है। **************** पहले से ही उजागर है POST **************** और अभी भी यहाँ से उपयोग करने योग्य है तीन स्वतंत्र कारण: वीओआईपीसेवा के पास एआई सेवा के लिए कोई ग्राहक नहीं है; एआई सर्विस यह प्रमाणित करता है कि एक अलग रहस्य के साथ सतह ************* आंतरिक नहीं.auth.secret; और समापन बिंदु कोई नंगे E.164 स्वीकार नहीं करता, केवल ************* - और एक नंगे संख्या वास्तव में क्या है? * संपर्क कुंजी "टेल:<e164>" है। AGENT CONTACT STATE पर अद्वितीय है (ORGANIZATION ID, contact KEY) और इसमें कोई फ़ोन कॉलम नहीं है, इसलिए कहीं नहीं है और एक नंगे नंबर जा सकते हैं। एमएस 1 द्वारा बंद नहीं किया गया: यह पंक्ति नहीं है बाद में "लीड: <uid>" पंक्ति के साथ एक ही इंसान के लिए विलय, इसलिए एक गेट परामर्श लीड-कीड पंक्ति कोई ऑप्ट-आउट नहीं देखती है। MS2 इसे गेट पढ़ने के द्वारा बंद कर देता है ConsentRecord, जो संख्या-की है। * एक नंगे STOP सभी चार चैनलों को सेट करता है। यह केवल "SMS" नहीं कहता है, और इसे पढ़ता है जिस तरह से उन लोगों को ईमेल करना छोड़ देता है जिन्होंने उन्हें रोकने के लिए कहा था। स्टार्ट एसएमएस केवल - एक START एक अभियान संख्या के लिए texted एसएमएस के बारे में सबूत है और कुछ नहीं। * एक null org रसीद को रिकॉर्ड करता है और उसे सूचित करता है। कोई सहमति पंक्ति नहीं प्रक्षेपण: एक सांकेतिक संगठन के साथ एक सहमति वैश्विक दमन है C1 forbids, and ******************* किसी भी तरह से nullable = झूठी। साक्ष्य आज भी आज की मौन को पीटता है। * सहमति व्यक्तAt वाहक के घटना के समय और रिकॉर्ड जो इस्तेमाल किया गया था पसंद करते हैं। Twilio के इनबाउंड वेबहुक में कोई टाइमस्टैम्प नहीं है, इसलिए इकाई javadoc की "अनुभव से ऐप-सेट, अब कभी नहीं)" इसके लिए संतोषजनक नहीं है। धाराप्रवाह `timestamp` भेजें, इसलिए InboundSms ने एक `carrierEventAt` घटक प्राप्त किया और फ्लोरूट पार्सर ने इसे पढ़ा (Instant / ऑफसेटDateTime / नंगे स्थानीय, सामान्यीकृत करने के लिए) UTC; पढ़ने योग्य कुछ भी शून्य नहीं है, कभी भी एक अनुमान नहीं है। सहमति पंक्ति के सबूतBlob "conentedAtSource": "carrier" | "receipt"। एक रसीद समय है अविस्मरणीय और एक गढ़े हुए व्यक्ति नहीं है; दोनों को अविस्मरणीय होना बाद में क्या समीक्षा जीवित नहीं होगा। * हैंडल () एक रिकॉर्ड लेता है, नहीं योजना के छह स्थिति मापदंडों। योजना हस्ताक्षर रसीद समय, वाहक घटना समय या कच्चे नहीं ले सकता है प्रूफ पेलोड, और इसके चार पैरामीटर्स आसन्न स्ट्रिंग्स थे - ट्रांसपोजिंग `` से` और `to` चुपचाप संकलित करता है और किरायेदार की अपनी संख्या को दबाता है। वीओआईपीसेवाआवेदन लाभ ************* ************* कोई प्रविष्टि की जरूरत है: BasePackages मैच उप पैकेज और com.kamo.z.shared.comms पहले से ही सूचीबद्ध है। VoipRepositoryScanTest उसी पैकेज सूची में स्प्रिंग डेटा के JPARepositories रेजिस्ट्रार को ड्राइव करता है और तीन प्रस्तावों पर जोर देता है SmsKeywordService इंजेक्शन को बीन परिभाषा मिलती है। एक पूर्ण @ SpringBootTest बूट इस सेवा में उपलब्ध नहीं है - कोई परीक्षण डेटाबेस नहीं है। कोई परीक्षण संसाधन नहीं, कोई मौजूदा संदर्भ परीक्षण नहीं - इसलिए यह रजिस्ट्रार का अभ्यास करता है यह वास्तव में एक डेटा स्रोत के बिना परिणाम का फैसला करता है। TDD — देखा विफलताओं, क्रियाविधि. लागू करने से पहले लाल: [ERROR] SmsKeywordServiceTest.java प्रतीक नहीं मिल सकता [ERROR] प्रतीक: वर्ग SmsKeywordService [ERROR] प्रतीक: वर्ग InboundKeywordEvent [ERROR] स्थान: वर्ग **************** [INFO] BUILD FAILUR [ERROR] ************* चिह्न नहीं मिल सकता [ERROR] प्रतीक: विधि वाहकEventAt () के बाद ग्रीन: SmsKeywordServiceTest 17/17; पूर्ण सूट 314/314। Mutation 1 - ConsentRecord लेखन से org को हटा दिया: [ERROR] टेस्ट रन: 17, विफलता: 2, त्रुटियाँ: 0 << FAILURE! उम्मीद: 100L लेकिन था: null [ERROR] ************* [एक null org IS वैश्विक दमन के साथ एक सहमति पंक्ति - मुद्रा C1 निषिद्ध] [ERROR] ************* Mutation 2 - रसीद डालने को हटा दिया: [ERROR] टेस्ट रन: 17, विफलता: 3, त्रुटियाँ: 0 << FAILURE! चाहते थे लेकिन नहीं बुला: [ERROR] ************* [ERROR] ************* [ERROR] ************* नोट: योजना का कहना है कि इस उत्परिवर्तन को RETRY टेस्ट रेड को बदलना चाहिए। यह नहीं है। ************* मौजूद हैं stubs () सही करने के लिए पूर्व जांच, तो यह डालने से पहले शॉर्ट सर्किट करता है और इस उत्परिवर्तन के तहत GREEN रहता है। The योजना का नाम गलत परीक्षण है। Mutation 2b नीचे एक है कि retry कवर है पथ, और इसे चलाने के बिना M1 idempotency दावा एक पर रह गया होगा उत्परिवर्तन जो कुछ और साबित होता है। Mutation 2b — the अस्तित्व को हटा दिया () बजाय पूर्व जांच: [ERROR] टेस्ट रन: 17, विफलता: 2, त्रुटियाँ: 0 << FAILURE! ************* यहाँ कभी नहीं चाहते: [ERROR] ************* [ERROR] ************* Mutation 3 - केवल सभी चार चैनलों के बजाय एसएमएस बाहर निकलना: [ERROR] टेस्ट रन: 17, विफलता: 1, त्रुटि: 0 << FAILURE! मूल्य को सही करने की उम्मीद है लेकिन झूठा था [ERROR] ************* Mutation 4 - गिरा दिया **************** स्कैन से पैकेज, यानी क्रैशलूप खुद: [ERROR] टेस्ट रन: 3, विफलता: 2, त्रुटियाँ: 0 << FAILURE! [ERROR] ************* [ConsentRecordRepository में कोई बीन परिभाषा नहीं है - **************** @EnableJpaRepositories द्वारा कवर नहीं है। यह एक रनटाइम नल नहीं है: REFUSES to START and pod CrashLoops. [ERROR] ************* [इस परीक्षण की जांच ने VOIPServiceApplication की असली घोषणा से बहाया है] सभी उलटा। पलटने के बाद पूर्ण सूट: टेस्ट रन: 314, विफलता: 0, त्रुटियाँ: 0। डीडीएल नहीं है। यह कैमो साझा पुस्तकालय जोड़ने पर निर्भर करता है comms sms inbound receipt और **************** अभी तक डेटाबेस में मौजूद है। एक निजी क्षेत्र में साझा-lib जार के खिलाफ स्थानीय रूप से निर्मित -Dmaven.repo.local; ~/.m2 के 1.6.0 जार को पहले से ही सत्यापित किया गया था और के बाद (md5 ****************

सभी बदलाव

जैसा कि आप शिपिंग देखते हैं?

इन अद्यतनों में से प्रत्येक स्वचालित रूप से अपने कार्यक्षेत्र में उतरता है। प्रारंभ करें और सप्ताह के बाद इसे सप्ताह के अंत में देखें।.

Foreverमूल्य निर्धारण देखें