विषयवस्तु पर जाएँ
KAMOUniverse

परिवर्तन लॉग

क्या नया है.

यह जहाज के रूप में, प्लेटफार्म के हर सुधार.

  1. · VOIPService

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

    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 ****************

  2. · kamo-internal

    खिड़की से चैट नेविगेटर को अलग करें यह अधिकतम हो जाता है

    बातचीत नेविगेटर टूलविंडोशेल का एक चाइल्ड प्रोप था, जिसे प्रस्तुत किया गया था अधिकतम विंडो की सामग्री बॉक्स के अंदर। इसमें एक पंक्ति क्लिक करना खुलता है कि बातचीत को अधिकतम करने के लिए, जो इसे रखने वाली विंडो को ध्वस्त करता है - इसलिए नेविगेटर हर तरह के उपयोग पर अमाउंटेड और रिमाउंटेड। सदस्य नेविगेट करके उन चीज़ों को नष्ट करना जो उनके साथ नेविगेट कर रहे थे: बाल्टी, स्क्रॉल स्थिति और खोज पाठ सभी तत्काल वे क्लिक रीसेट करें। यह अब एक डॉक-लेवल भाई है। टूलडॉक वास्तव में एक माउंट करता है ChatNavigatorPanel, बाएं किनारे को बंद कर दिया, और अधिकतम विंडो बंद हो जाती है इसमें से कम (`leftInset`) बजाय नीचे खींचा जा रहा है। एक swap पार पैनल कभी भी अनमाउंट नहीं होता है, इसलिए रीएक्ट के दृष्टिकोण से कुछ भी नहीं होता है यह बाल्टी बीज को पहले टूल में जमे हुए किया जाता है। किसी सदस्य के तहत फिर से फ़िल्टर नहीं करता है जो सिर्फ पंक्ति पर क्लिक करता है। मोशन लीड-एंड-ट्रेल है: मैक्सिमाइज़िंग, नेविगेटर बाएं से बाहर निकलता है किनारे और खिड़की विस्तार करती है कि इसके पीछे क्या 70ms है; पुनर्स्थापना 90ms तक पहुंचने वाले रिवर्स, विंडो पहले, नेविगेटर को चलाता है। न तो घटक एक दिशा को स्टोर करता है - दोनों देरी `maxized` से हो रही है, इसलिए ध्वज दिशा है। साझा समय अधिकतम Motion.t में रहते हैं क्योंकि दो हिस्सों को अब एक दूसरे के राज्य को नहीं देखा जा सकता है। एक पंक्ति क्लिक अलग से choreographed है (useMaximizedSwap): फलक फ्रीज और दो बातचीत एक विंडो के बजाय इसके अंदर क्रॉस-डिसोल्व हो जाती है जब एक दूसरे से बाहर निकलता है तो यह एक नाविक स्टैंड के बगल में उड़ता है अभी भी। ध्वस्त खिड़की पैन की ज्यामिति को रहती है जबकि यह फीका पड़ जाता है, फिर अभी भी संक्रमण के साथ अपने डॉक स्लॉट पर एक बसे हुए बीट हो जाता है, इसलिए यह देखने के बजाय वापस उड़ान के बजाय लुप्तप्राय द्वारा प्रकट होता है। ओपेसिटी और सीएसएस से फ्रेमर-मोशन में बदलाव: एक सीएसएस संक्रमण पहले से ही माउंटेड तत्व के लिए "8px लोअर से शुरू" व्यक्त नहीं कर सकता है, जो पहले से ही माउंटेड तत्व के लिए शुरू होता है। क्या एक खिड़की को फलने में फँसाना है? ज्यामिति सीएसएस पर रहती है - फ्रेमर प्रत्येक फ्रेम को फिर से मापेंगे (100vw - Npx)। पसंद-कम-गति इसमें से सभी को एक अस्पष्टता स्वैप में छोड़ देता है। पतन राज्य उपयोग में लिफ्टChatNavigatorCollapse: टूलडॉक की जरूरत है विंडो को आकार देने के लिए नेविगेटर की चौड़ाई, और एक घटक अपनी चौड़ाई का मालिक है यह नहीं बता सकता। कोई नया i18n कुंजी नहीं है। सत्यापित: tsc स्वच्छ, 144 परीक्षण उपकरणों के पार पास / और बातचीत /, सभी गार्ड स्क्रिप्ट पास करते हैं। दो लोड-असर व्यवहार (जंगली बाल्टी बीज, घुलने के माध्यम से आयोजित फलक) उत्परिवर्तन परीक्षण किया गया था। दृश्य रूप से सत्यापित नहीं है - इस रेपो में कोई हेडलेस ब्राउज़र नहीं है।.

  3. · kamo-internal

    एक सदस्य के हस्ताक्षर पर कंपनी फोन (मुख्य / टोल फ्री) उनके विस्तार के साथ

    ********************** की सामग्री टैब दो स्विच प्राप्त करते हैं: कंपनी फोन (मुख्य) और कंपनी फोन (टोल फ्री)। सक्षम, वे प्रिंट करते हैं संगठन की प्रकाशित लाइन के बाद भेजने वाले सदस्य का विस्तार — "(555) 555-5555 x81234" - इसलिए उत्तर-by-phone उस व्यक्ति तक पहुंचता है जिसने लिखा था, स्विचबोर्ड नहीं। संख्या पर संपर्क जानकारी से आती है ************* एक्सटेंशन एक सदस्य है जिसे वास्तव में निर्दिष्ट किया गया है: MemberVoipConfig, वीओआईपीसर्व से पढ़ा जाता है और केवल जब उनकी वीओआईपी सक्षम होती है, तब से एक सदस्य के साथ यह बंद हो गया है कि विस्तार का जवाब नहीं देता है। TeamMember.phoneWorkExtension यह सब एक संगठन है जो फोन सर्वर के माध्यम से नहीं चल रहा है। कामो कभी होगा। कोई एक्सटेंशन का मतलब है कि नंबर प्रिंट के बजाय नंगे नहीं एक dangling "x"। एक ही प्राथमिकता QuoteAgentContactResolver पहले से ही लागू होता है सर्वर साइड। कंपनीफोन कंपनी बन जाता हैफोन मेन + कंपनीफोन टोल फ्री, जो दो को ठीक करता है इसे छिपाने की चीज़ें: - लागू करेंफील्ड कॉन्फिग एक क्षेत्र के पीछे दोनों संख्याओं को गेट करता है `if (!local &&!tollfree)`, इसलिए एक संगठन जिसने केवल अपने टोल-फ्री को सक्षम बनाया लाइन अभी भी अपने स्थानीय एक मुद्रित था। - अभियान संपादक हस्ताक्षर कॉन्टेंट में एक कंपनीफोन कुंजी लिख रहा था; साथ में फील्ड को पता चला कि यह पता चलता है, लेकिन स्प्रेड इसे माध्यम से ले जाया गया था चुपचाप, इसलिए एक अभियान पूर्वावलोकन लाइन को गिरा दिया जाएगा। सभी 29 हस्ताक्षर टेम्पलेट्स अब दोनों लाइनों को प्रदान करते हैं। तीन पहले किया था, इसलिए समतुल्य विभाग और कंपनी टॉगल काफी हद तक निष्क्रिय थे - जिससे एक ने किया अन्य 26 लेआउट पर कुछ भी नहीं और एक टूटी सेटिंग के रूप में पढ़ा। विभाग और कंपनी टॉगल अपनी संग्रहीत कुंजी रखते हैं और एक ही शब्दकरण के लिए विद्रोह कर रहे हैं, इसलिए तीन गुंजाइश अब एक ही नंबर दो अलग-अलग चीजों को नहीं कहते हैं। चार स्वतंत्र पथ हस्ताक्षर सामग्री का निर्माण - सेटिंग्स पूर्वावलोकन, संगीतकार, अभियान और बैठक निमंत्रण - और सभी चार अपडेट किए गए हैं। वीओआईपीसर्व फॉरवर्ड टोएपीआई (एपीआई सर्विस मार्ग नहीं) के माध्यम से पहुंच योग्य नहीं है /एपीआई / वीओआईपी उपसर्ग), इसलिए आमंत्रित मार्ग को बेस-यूआरएल सहायक को कैच-ऑल मिलता है **************** की जरूरत है ईमेल सेवा और KamoInitializerसेवा माइग्रेशन उतरने के लिए: दो टॉगल ऑर्ग-वाइड बने रहे हैं।.

  4. · EmailService

    Persist दो कंपनी फोन toggles

    Reads and writes userCompanyPhoneMain / userCompanyPhoneTollfree on हस्ताक्षर क्षेत्र विन्यास, इसलिए सामग्री टैब के नए स्विच एक बचा रहता है। सेवफील्ड कॉन्फिग फ़ील्ड को मौजूदा पंक्ति पर फील्ड द्वारा प्रतिस्थापित करने के बजाय जगह लेता है यह तो एक टॉगल छोड़ दिया गया है चुपचाप पहले के बाद हर बचा पर गिरा दिया — दोनों नए क्षेत्रों को उस प्रतिलिपि के साथ-साथ अनुरोध मैपर और अनुरोध मैपर में जोड़ा जाता है। प्रतिक्रिया। मेलिंग कॉलम की आवश्यकता है: KamoInitializerService's **************** इस जहाजों से पहले चला जाना चाहिए।.

  5. · kamo-shared-library

    सर्वर पर मुफ्त एक्सटेंशन प्राप्त करें

    एक org एक नया, खाली KamoPBX सर्वर देखा के बगल में एक व्यस्त FreePBX सर्वर चल रहा है "21 बिलेबल एक्सटेंशन - $ 63.00 / महीना" जबकि KamoPBX एक को देखते हुए। दोनों संख्याएं संगठन के सच्चे थे और न ही सर्वर के बारे में सच थी। स्क्रीन, और अंतर को बताने के लिए स्क्रीन के लिए कोई रास्ता नहीं था: टूटने उदाहरण के लिए प्रति बिलेबल एक्सटेंशन आईडी लेकिन मुक्त लोगों को एक में पतन एकल संगठन-व्यापी int। unassignedThirdPartyByInstance की जगह है कि int. unassignedThirdPartyCount() है के बजाय एक व्युत्पन्न राशि के रूप में रखा, तो कुल और भागों अलग नहीं हो सकता है, और हर मौजूदा कॉलर और दावे को अस्वीकार कर दिया गया है। Adds billableCountFor (संस्था), countFor (संस्था, वर्ग) और ************* - प्रति सर्वर लाइन के लिए पर्याप्त जो सम्मान करता है वर्ग के नियम, जो वास्तव में उन तरीके से भिन्न होते हैं जो यहाँ मायने रखते हैं: एक होस्टेड एक्सटेंशन बिलेबल है कि क्या किसी को असाइन किया गया है या नहीं, केवल एक तृतीय-पक्ष जब कोई हो। तो एक खाली KamoPBX सर्वर $ 0 और एक KamoPBX सर्वर के साथ है पांच असाइन किए गए एक्सटेंशन नहीं हैं। संस्करण जानबूझकर 1.6.0 पर परिवर्तित नहीं हुआ। एक पृथक में निर्मित और परीक्षण किया गया Worktree of Origin/main — दूसरे सत्र में सात असंबंधित फाइलें यहां खुल गई हैं। और इस पेड़ से स्थापित करने के लिए प्रगति पर अपने काम को प्रकाशित किया जाएगा। 2305 परीक्षण पास।.

  6. · InitializerService

    ईमेल सेवा पढ़ने से पहले कंपनी फोन टॉगल कॉलम को लैंड करें

    यदि आप नहीं चाहते हैं, तो कृपया हमसे संपर्क करें user company phone main and user company phone toll free. यह सेवा डीडीएल-ऑटो: अद्यतन दोनों इकाई से जोड़ देगा, लेकिन हर सेवा वह उन्हें डीडीएल-ऑटो चलाता है: कोई नहीं, और हाइबरनेट के स्वयं के ALTER कोई DEFAULT नहीं है। इसे यहां स्टेटिंग करने के बजाय मौजूदा संगठनों के लिए FALSE को लैंड करता है, जो "डिफ़ॉल्ट द्वारा बंद" का मतलब है। आदेश 0: इकाई इस निर्माण शुरू होने के क्षण से दोनों स्तंभों का नक्शा देती है, इसलिए एक धावक ने आदेश दिया कि उसे JPA के माध्यम से लोड करने के बाद कभी निष्पादित नहीं होगा - पहले एक "कोलंबन मौजूद नहीं है" पर मर जाएगा और इसके साथ पूरे रन ले जाएगा।.

  7. · kamo-shared-library

    कंपनी फोन toggles एक व्यक्तिगत हस्ताक्षर ले जा सकते हैं

    ईमेल signature field config: user company phone main user company phone toll free. उन्होंने संगठन की प्रकाशित लाइन को एक पर रखा सदस्य का अपना हस्ताक्षर उस सदस्य का विस्तार — "(555) 555-5555 x81234" - यह कैसे एक प्राप्तकर्ता उस व्यक्ति तक पहुंचता है जिसने उन्हें बजाय उनके पास लिखा था। स्विचबोर्ड। डिफ़ॉल्ट रूप से बंद करें एक संगठन जो कोई मुख्य संख्या प्रकाशित करता है, या जिसका सदस्य सीधी रेखाओं को पकड़ना, किसी के बाद हर नाम के तहत एक अतिरिक्त रेखा दिखाई नहीं देनी चाहिए तैनाती।.

  8. · kamo-shared-library

    इनबाउंड-कीवर्ड रसीद, और अभियान द्वारा फिर से कुंजी सहमति (MS1 कार्य 3)

    इनबाउंड STOP को रिकॉर्ड करने से पहले सहमति के नेतृत्व की आवश्यकता दो चीजें दर्ज की जा सकती हैं किरायेदार-स्किप और बिल्कुल एक बार। `SmsInboundReceipt` (comms sms inbound receipt) से idempotency लंगर है योजना निर्णय M1। इनबाउंड रेल पहले से ही डिडुप और न तो डिडुप कवर कर सकते हैं एक कीवर्ड: ********************************************** 'VoipMessage' पंक्ति वाहक के संदेश आईडी के लिए मौजूद है, लेकिन एक कीवर्ड संदेश है अवरोधित और रिटर्न इससे पहले कि पंक्ति लिखी गई है - इसलिए एक की दूसरी डिलीवरी वाहक retry कोई पंक्ति नहीं पाता है और फिर से संसाधित होता है। इस तालिका के बिना एक वाहक Retrying STOP तीन बार एक WORM लेजर को तीन रिवोकेशन रिकॉर्ड्स को परिशिष्ट करता है कि कभी साफ नहीं किया जा सकता। अनोखा (ORG ID, CARRIER MESSAGE ID); WORM कुल ब्लॉक ConsentRecord से कॉपी किए गए गार्ड, जानबूझकर AgentOutboundTouch whose से नहीं लगभग सभी पर कोई गार्ड नहीं है। ORG ID को शून्य किया जा सकता है, इसलिए एक अप्राप्य STOP अभी भी सबूत के रूप में दर्ज किया गया है - और SQL अद्वितीय बाधाएं NULL को बाधित नहीं करती हैं, इसलिए रिपोजिटरी एक होती है अलग ************* एक नल सामान्य में पारित व्युत्पन्न खोजकर्ता `= NULL` के रूप में प्रस्तुत करता है, जो कभी सच नहीं है, इसलिए org-less retry जाँच चुपचाप हर बार पारित किया होगा। उस छेद पर दस्तावेज है इकाई: यह बंद हो जाता है जब ADD5 / MS3 ऑर्ग को हल करने योग्य बनाता है। `ConsentRecord` लाभ एक nullable स्तंभ, `campaign id`, और एक सूचकांक, (organization id, raw number, स्कोप)। कुछ और नहीं चले गए: वर्म गार्ड, पार्टी-XOR-rawnumber `assertidified()` that DB CHECK Mlos consent one identity chk पर निर्भर करता है, तीन पूर्व मौजूदा अनुक्रमणिकाओं पर निर्भर करता है। nullable Organization id सभी अपरिवर्तित हैं और `ConsentRecordCampaignKeyTest` उनमें से प्रत्येक के आसपास एक प्रतिगमन बाड़ है। नए org-scoped खोजकर्ता पूर्व-existing org-AGNOSTIC के बगल में बैठते हैं ************* इसके लिए सही है MLOS वैश्विक-STOP पढ़ने और MS1 के लिए गलत, जहां एक घर का मालिक जो बॉब के sTOPs नलसाजी को डेव के एचवीएसी द्वारा पहुंच योग्य होना चाहिए। दोनों को दस्तावेज दिया जाता है इसलिए गलत चुनना कॉल साइट पर दिखाई देता है, बजाय एक चुप क्रॉस-tenant दमन होने के नाते। TDD — देखा विफलताओं, क्रियाविधि. कार्यान्वयन से पहले लाल (mvn -o -dmaven.repo.local=<private> परीक्षण): [ERROR] ************* चिह्न नहीं मिल सकता [ERROR] प्रतीक: वर्ग SmsInboundReceipt [ERROR] स्थान: वर्ग **************** (9 पुनरावृत्तियाँ) [ERROR] ************* चिह्न नहीं मिल सकता [ERROR] ************* चिह्न नहीं मिल सकता [ERROR] ************* चिह्न नहीं मिल सकता [INFO] BUILD FAILUR इसके बाद ग्रीन: टेस्ट रन: 19, विफलता: 0, त्रुटि: 0 (NotificationConsentTest के साथ)। Mutation A - रसीद के सूचकांक से `unique = True` गिरा: [ERROR] टेस्ट रन: 5, विफलता: 1, त्रुटियाँ: 0 << FAILURE! -- in ************* java.lang. AssertionError: comms sms inbound receipt को एक UNIQUE इंडेक्स की आवश्यकता होती है - यह एकमात्र ऐसा चीज है जो एक वाहक को रोकती है, जो एक दूसरे का जवाब देती है रिकॉर्ड [ERROR] ************* Mutation B — हटा दिया (organization id, raw number, गुंजाइश) सूचकांक: [ERROR] टेस्ट रन: 6, विफलता: 1, त्रुटियाँ: 0 << FAILURE! - in ************* [ERROR] ************* [an (organization id, raw number, गुंजाइश) सूचकांक - किरायेदार-coped ऑप्ट-आउट पढ़ा] दोनों उलट गए। पलटने के बाद पूर्ण सूट: टेस्ट रन: 2295, विफलता: 0, त्रुटियाँ: 0 — SharedLibBeanSafetyTest सहित, जो दो नए वर्गों के पास है क्योंकि न तो एक स्प्रिंग स्टीरियोटाइप होता है। डीडीएल नहीं है। Com sms inbound receipt मौजूद नहीं है और Mlos conent record में कोई अभियान id कॉलम नहीं है। इससे पहले जहाज नहीं करना चाहिए KamoInitializerService नए टेबल पर UPDATE/DELETE दोनों और REVOKE लागू होता है। (योजना कार्य 5) - इकाई कॉलबैक थोक जेपीक्यूएल या मूल एसक्यूएल के लिए आग नहीं है।.

  9. · kamo-shared-library

    सिंक जर्नल और एक टर्मिनल रन जो वास्तव में जमे हुए है

    BL1 टास्क 5, साझा पुस्तकालय आधा। पांच पत्रिका enums, तीन संस्थाओं और तीन **************** कोई स्टीरियोटाइप नहीं: बिलिंग वॉर्मगार्ड एक निजी निर्माता के साथ एक सादे अंतिम वर्ग है, और साझालिबियनसुरक्षा टेस्ट हरा है। पेरोल स्रोत पर दो जानबूझकर सुधार: 1. TERMINAL-RUN GUARD PAYROLL DOCUMENTS and DOES not have (defect 5). PayrollSyncRun के javadoc का दावा है "एक टर्मिनल रन फिर से लिखा नहीं है" के साथ इसके पीछे कुछ भी नहीं। बिलिंगSyncRun इसे लागू करता है। योजना गार्ड को वर्तमान क्षेत्र के एक नंगे पढ़ने के रूप में निर्दिष्ट करती है: अगर (state!= null&&&state != BillingSyncRunState.Running) { फेंको ... } यह संस्करण WRONG है और इसका उत्पादन टूट जाएगा। @Preupdate fire इसके बाद कॉलर ने इकाई को म्यूट किया है, इसलिए यह टर्मिनल स्टेट को देखता है BillingSyncJournal.Full () ने सिर्फ एक लिखने से इनकार कर दिया है और इनकार कर दिया है। प्राप्त करने के लिए पंक्ति मौजूद है - पूरा () प्रत्येक रन पर फेंक देगा और CloseStaleRuns () प्रत्येक स्वीप पर। इसलिए गार्ड के खिलाफ तुलना राज्य के रूप में लोड, एक @ PostLoad द्वारा एक @transient क्षेत्र में स्नैपशॉट पर कब्जा कर लिया। A पंक्ति कभी लोड नहीं हुई (एक ताजा `नया`) को अपने वर्तमान राज्य में माना जाता है, जो रखता है योजना का अपना परीक्षण सार्थक है। 2. dbnow() (सेल्फ-रीव्यू का ध्वजांकित अंतराल)। पेरोल डेटाबेस घड़ी से पढ़ता है TimecardPunchRepository; Invoicingservice के पास कोई पंच टेबल नहीं है। जोड़ा ************* @Query(value = "SELECT CAST(now) AS timestamp)", मूल क्वेरी = सच) — साथ SQL मानक CAST, क्योंकि एक `:` कास्ट चुपचाप mangled है: Hibernate `:` एक नामित पैरामीटर उपसर्ग के रूप में पढ़ता है और अब बदल जाता है ():: टाइमस्टैम्प इन : टाइमस्टैम्प बिलिंगसिंकजर्नल अपने एकमात्र कॉलर और एकमात्र वास्तविक लेखक हैं। At; the body's @PrePersist LocalDateTime.now() Fallbacks रखा जाता है पिछले-रिज़ॉर्ट गार्ड्स के रूप में और इस तरह के (defect 6) के रूप में दस्तावेज किया गया। दोनों WORM संस्थाओं को NARROW repositories द्वारा परोसा जाता है जो रिपोजिटरी का विस्तार करता है, न कि JpaRepository, इसलिए @PreRemove के लिए कोई बैच नष्ट नहीं होता है। TDD साक्ष्य - लाल पहला (संकलन, किसी भी वर्ग के अस्तित्व से पहले): [ERROR] ************* चिह्न नहीं मिल सकता [ERROR] प्रतीक: वर्ग बिलिंगSyncIssue [ERROR] स्थान: वर्ग **************** ... 20 आगे "चिह्न चिह्न नहीं मिल सकता" त्रुटियाँ, BUILD FAILURE कार्यान्वयन के बाद ग्रीन: टेस्ट रन: 7, विफलता: 0, त्रुटियाँ: 0, छोड़ दिया: 0 Mutations, प्रत्येक रन से एक अलग `git संग्रह HEAD` प्रतिलिपि के साथ अपनी खुद की लक्ष्य / और उसके खुद -Dmaven.repo.local (इस चेकआउट अन्य के साथ साझा किया जाता है) सत्र और यहाँ एक लाल सूट आम तौर पर किसी और के लाल चरण है: MUTATION D - इम्प्लीमेंटिनल Immutability's `throw` ने `return` के साथ बदल दिया (योजना के चरण 6 नामों का उत्परिवर्तन): टेस्ट रन: 7, विफलता: 2, त्रुटि: 0, छोड़ दिया: 0 << FAILURE! ************* << FAILURE! java.lang. आक्रमण: एक फेंकने योग्य बनाने के लिए कोड का चयन करना। ************* ************* << FAILURE! java.lang. आक्रमण: एक फेंकने योग्य बनाने के लिए कोड का चयन करना। ************* MUTATION E - गार्ड ने EXACTLY को फिर से लिखा क्योंकि योजना इसे निर्दिष्ट करती है, यानी एक नंगे No @ PostLoad स्नैपशॉट के साथ `state` पढ़ा। यह सबूत है कि योजना का संस्करण टूट गया है: टेस्ट रन: 7, विफलता: 1, त्रुटि: 0, छोड़ दिया: 0 << FAILURE! ************* << FAILURE! java.lang. आक्रमण: कोड को फेंकने के लिए नहीं बल्कि पकड़ा गया ************* BillingSyncRun null is SUCCEEDED, and is required. एक पूर्ण रन के बारे में सबूत; इसे फिर से लिखा नहीं जा सकता। ************* ************* MUTATION F — BillingWormGuard.reject ने कोई विरोध नहीं किया: टेस्ट रन: 7, विफलता: 4, त्रुटि: 0, छोड़ दिया: 0 << FAILURE! ************* -- एक फेंकने योग्य बनाने के लिए कोड का चयन करना। ************* -- एक फेंकने योग्य बनाने के लिए कोड का चयन करना। ************* -- एक फेंकने योग्य बनाने के लिए कोड का चयन करना। ************* -- एक फेंकने योग्य बनाने के लिए कोड का चयन करना। सभी तीन उलटा। बाद में पूर्ण पुस्तकालय सूट: टेस्ट रन: 2288, विफलता: 0, त्रुटियाँ: 0, छोड़ दिया: 0 बिल्डिंग <version> 1.6.0 पर untouched। नहीं धक्का दिया - टास्क 9 पहले DDL भूमि।.

  10. · VOIPService

    कैरियर का सामना करना पड़ा एसएमएस वेबहुक (MS1 टास्क 2)

    पोस्ट ************* - फॉर्म-एनकोडेड या जेएसओएन, द्वारा संरक्षित कैरीर का ओवन सिग्नेचर। क्यों एक नया समापन बिंदु है। /api/voip/webhook एक STOP प्राप्त नहीं कर सकता है और चुपचाप विफल हो जाता है: यह पढ़ाया जाता हैTree() शरीर में कोई `conumes` प्रतिबंध नहीं है, हर थोक पाठ वाहक पोस्ट ************* पार्स फेंकता है, अपवाद है निगल लिया और वाहक 200 OK उत्तर दिया जाता है - इसलिए यह कभी नहीं retries। पुष्टि इसे लिखने से पहले वर्तमान स्रोत में। क्यों यह पथ? ************* "/api/bulktext/send" रखती है और शुरुआत के साथ मेल खाता है, इसलिए इसके तहत कुछ भी X-Internal-Auth की मांग करता है हेडर एक वाहक नहीं भेज सकता है। /api/bulktext/inbound /send का एक SIBLING है, है ************* में जोड़ा गया है और जानबूझकर पंजीकृत नहीं है आंतरिक फ़िल्टर में। Twilio हस्ताक्षर: HMAC-SHA1 पूर्ण यूआरएल (query स्ट्रिंग शामिल) प्लस पर प्लस POST मापदंडों ने मामले के प्रति संवेदनशील क्रमबद्ध आदेश, base64 में नाम-तत्काल-मूल्य का पालन किया, X-Twilio-Signature with MessageDigest.isEqual. के खिलाफ सत्यापित Twilio की सुरक्षा प्रलेखन, फिर प्रकाशित वेक्टर के लिए पिन किया गया Twilio's own twilio-java requestValidatorTest (token 12345) -> RSOYDt4T1cUTdK1PDd93/VVr8B8=), इसलिए परीक्षण गलत एल्गोरिथ्म के लिए पारित नहीं कर सकता। MicrosoftTeamsProvider (blank रहस्य -> लॉग + झूठी; अपवाद -> पर मॉडलिंग झूठा; स्थिर समय की तुलना; रिंगसेंट्रलप्रोवाइडर की `return True; // TODO`, और रिंगसेंट्रलसिग्नचरUtil के बराबरइग्नोरकेस का पुन: उपयोग नहीं किया जाता है। हस्ताक्षरित URL को X-Forwarded-Proto/Host से पुनर्निर्माण किया जाता है, जिसे RequestURL () नहीं मिलता है। The किनारे TLS को समाप्त कर देता है, इसलिए getRequestURL () कंटेनर की अपनी योजना वापस करता है और मेजबान, जो Twilio हस्ताक्षरित नहीं है - प्रत्येक हस्ताक्षर विफल हो जाएगा और असफलता वास्तव में एक भाग्य की तरह दिखती है। FLOWROUTE PARSE-ONLY और STILL REFUSES हर WEBHOOK है। फ्लोरूट प्रकाशन नहीं वेबहुक हस्ताक्षर: इसके इनबाउंड-मेसेज डॉक्स कॉलबैक यूआरएल को निर्दिष्ट करते हैं, जो कॉलबैक यूआरएल को निर्दिष्ट करते हैं। आवेदन / vnd.api+json सामग्री प्रकार और पेलोड आकार, और कोई हस्ताक्षर नहीं हेडर, HMAC योजना या साझा रहस्य। सत्यापित करने के लिए कुछ भी नहीं है, इसलिए यह रहता है एक आविष्कार योजना प्राप्त करने के बजाय असफल बंद डिफ़ॉल्ट - एक आविष्कार किया कोई भी वास्तविक यातायात को अस्वीकार करेगा या सच होने के लिए लिखा जाएगा। इस अंतरफलक को रोकने के लिए मौजूद है। फ्लोरूट भी नहीं करता इसके बाद फॉर्म-एनकोड किया गया, इसलिए `conume` vnd.api+json भी स्वीकार करता है। सिंच, इन्फोबैप और Vonage दोनों तरीकों पर unimplemented हैं और एक चेतावनी खुद को नाम देने लॉग इन करें। TDD सबूत ------------ लाल (वर्ग अनुपस्थित): [ERROR] ************* चिह्न नहीं मिल सकता प्रतीक: वर्ग BulkTextInboundController स्थान: वर्ग **************** ग्रीन: टेस्ट रन: 27, विफलता: 0, त्रुटि: 0, छोड़ दिया: 0 1 - एक योजना नाम, और यह कुछ भी नहीं साबित होता है। प्लान टास्क 2 स्टेप 8 कहते हैं: 'true' के लिए मान्य WebhookSignature डिफ़ॉल्ट बनाएं और AMissingWebhookSecretRejects को लाल होना चाहिए। अवलोकन: टेस्ट रन: 24, विफलता: 0, त्रुटियाँ: 0, छोड़ दिया: 0 [INFO] BUILD SUCCESS कुछ नहीं लाल हो गया। प्रत्येक परीक्षण Twilio ड्राइव करता है, जो डिफ़ॉल्ट रूप से चूक करता है, इसलिए असफल बंद डिफ़ॉल्ट सभी पर कोई परीक्षण द्वारा प्रयोग किया गया था और चुपचाप किया जा सकता है किसी भी समय उलटा - चार वाहकों को "सभी चीज़ों को मिटा दें" से मोड़ना "कुछ स्वीकार" एक समापन बिंदु पर जहां कुछ भी स्वीकार करने के लिए एक अजनबी की अनुमति देता है किसी भी उपभोक्ता की सहमति को रद्द करना। जोड़कर बंद ********** जो एक नंगे पर डिफ़ॉल्ट पिन करता है कार्यान्वयन और उस पर निर्भर चार वास्तविक वाहकों पर। उसी को फिर से चलाना इसके खिलाफ उत्परिवर्तन: ************* ************* [एक अव्यक्त वाहक को कभी भी एक अपरिवर्तनीय वेबहुक को स्वीकार नहीं करना चाहिए] झूठे होने के लिए मूल्य की उम्मीद लेकिन सच था ************* ************* [SinchTextProvider को विफल होना चाहिए] झूठे होने के लिए मूल्य की उम्मीद लेकिन सच था Mutation 2 -- जो वास्तव में योजना के नाम का परीक्षण लक्षित करता है: Twilio रिक्त-authToken गार्ड `return झूठ` से `return True` में बदल गया। अवलोकन: ************* ************* उम्मीद है: 403 लेकिन था: 200 ************* ************* झूठे होने के लिए मूल्य की उम्मीद लेकिन सच था Mutation 3 -- पैरामीटर क्रमबद्ध उलट (TreeMap प्राकृतिक आदेश -> Comparator.reverseOrder(), एल्गोरिथ्म टेस्ट दिखाने के लिए खाली नहीं है: ************* ************* मूल्य को सही करने की उम्मीद है लेकिन झूठा था ************* ************* उम्मीद: 200 लेकिन था: 403 सभी तीन उत्परिवर्तन वापस लौटे। पलटने के बाद पूर्ण सूट: टेस्ट रन: 290, विफलता: 0, त्रुटि: 0, छोड़ दिया: 0 / BUILD SUCCESS ज्ञात अंतराल, जानबूझकर और रनटाइम पर लॉग इन ************* * एक सत्यापित इनबाउंड संदेश को मान्यता दी गई है और लॉग आउट किया गया है। The SmsKeyword Service के लिए हाथ से बंद एक चिह्नित TODO है क्योंकि उस वर्ग में आता है कार्य 3. यह समापन बिंदु अभी तक कुछ भी नहीं दबाता है। * संगठन संकल्प सक्रिय उदाहरणों को स्कैन करता है और साथ में करने के लिए संख्या से मेल खाता है ContactCanon.phone. कोई संख्या सूची नहीं है - एकमात्र स्वामित्व रिकॉर्ड BoldTextProviderInstance पर एकमात्र nullable from PHONE NUMBER है, जिसमें कोई नहीं है। खोजकर्ता और कोई सूचकांक नहीं। कोई मैच नहीं, या दो अंग भर में एक मैच, विशेषताएँ किसी को और लॉग करने के लिए संदेश; एक किरायेदार का अनुमान लगाना एक रिवोकेट रिकॉर्ड करेगा गलत एक के खिलाफ, जो इसे रिकॉर्डिंग से भी बदतर है। ADD5 / MS3 की आवश्यकता है। * InboundSms में कोई वाहक टाइमस्टैम्प नहीं है: Twilio के भीतर एसएमएस वेबहुक नहीं है एक भेजें। टास्क 3 का "ConentedAt वाहक घटना से आता है, अब कभी नहीं)" है इसलिए Twilio के लिए संतुष्ट नहीं है। रेफरी: ************* कार्य 2

  11. · kamo-shared-library

    E.164 सामान्यीकरण और एसएमएस कीवर्ड अनुवादक (MS1 टास्क 1)

    कोई I / O और कोई स्प्रिंग स्टीरियोटाइप के साथ दो शुद्ध वर्ग, इसलिए हर सेवा कर सकते हैं उन्हें लोड करें और साझा करेंलिबबीनसुरक्षा टेस्ट हरे रंग का रहता है। E164.normalize(raw, defaultRegion) -> वैकल्पिक<String>. स्पष्ट रूप से संकीर्ण और NANP-केवल: libphonenumber इस मॉड्यूल की निर्भरता नहीं है और इसे जोड़ा नहीं गया था इसके लिए, क्योंकि पुस्तकालय में सभी 28 सेवाओं के लिए एक महत्वपूर्ण निर्भरता जोड़ने लोड एक निर्णय नहीं है कि एक ऑप्ट-आउट पार्सर बनाना चाहता है। एक प्रमुख '+' स्वीकार किया जाता है As-is; एक NANP क्षेत्र के साथ 10 नंगे अंक, या 11 के नेतृत्व में '1', +1 हो गया; कुछ भी और खाली है। Refusing - एक अनुमान है कि एक वास्तविक लेकिन पर भूमि विभिन्न संख्या एक अजनबी को दबाती है और उस व्यक्ति को छोड़ देती है जिसने STOP को टेक्स्ट किया था अभी भी पाठ प्राप्त करना। No contactCanon.phone(), जो एक नुकसानदायक US-only तुलना कुंजी है (अंतिम 10) अंक, अग्रणी 1 गिरा दिया) कि मंच का नेतृत्व करने के लिए कॉल मिलान पर निर्भर करता है। यहां अपरिवर्तित और अप्रयुक्त। ************* -> SmsKeyword {STOP, HELP, Start,UNKNOWN}। CTIA के शब्दावली प्लस ARRET/AIDE। मैचिंग के बाद EXACT सेट सदस्यता है **************** कभी शामिल नहीं है ()। TDD सबूत ------------ लाल (वर्ग अनुपस्थित): [ERROR] ************* चिह्न नहीं मिल सकता [ERROR] प्रतीक: चर SmsKeyword इंटरप्रेटर [ERROR] स्थान: वर्ग **************** ग्रीन: टेस्ट रन: 10, असफलता: 0, त्रुटि: 0, छोड़ दिया: 0 म्यूटेशन 1 - सटीक मैच बदल गया ************* (और एचईएलपी/स्टार्ट के लिए भी)। लाल अवलोकन: ************* ************* उम्मीद: UNKNOWN लेकिन था: STOP ************* ************* [UNSTOP] अपेक्षित: स्टार्ट लेकिन था: STOP दूसरी असफलता योजना द्वारा भविष्यवाणी नहीं की गई थी और यह रिकॉर्डिंग लायक है: "UNSTOP" CONTAINS "STOP", इसलिए एक सबस्ट्रिंग कार्यान्वयन एक उपभोक्ता की पढ़ा एक ऑप्ट-आउट के रूप में फिर से ऑप्ट-इन होता है। () केवल यहां imprecise नहीं है, यह उलटा है। एक संदेश का अर्थ जो दमन को अस्वीकार करता है। Mutation 2 - E164 के अंतिम `return वैकल्पिक.empty()` में बदल गया `return वैकल्पिक.of("+1" + अंक)``। लाल अवलोकन: ************* java.lang. आक्रमण: एक खाली वैकल्पिक उम्मीद लेकिन मूल्य युक्त था: "+112345" दोनों उत्परिवर्तन वापस लौटे। पलटने के बाद पूर्ण सूट: टेस्ट रन: 2284, विफलता: 0, त्रुटि: 0, छोड़ दिया: 0 / BUILD SUCCESS रेफरी: ************* कार्य 1

  12. · kamo-shared-library

    प्रदाता कनेक्शन पंक्ति, प्रति ऑर्ग

    BL1 कार्य 1. पेरोल प्रदाता enums के निकट-verbatim transliteration **************** एनम, एक इकाई और एक भंडार - कोई स्टीरियोटाइप नहीं, इसलिए SharedLibBeanSafetyTest हरे और मालिकाना सेवा (InvoicingService) रहता है। प्रत्येक बीन घोषित करता है। पेरोल के नए रिश्तेदार: WEBHOOK SECRET CIPHERTEXT, एक प्रति-ऑर्ग rotatable अपने खुद के कॉलम (B2) में वेबहुक गुप्त। एक मंच-व्यापी रहस्य का मतलब होगा किसी भी ऑर्ग के लीक के बाद घूर्णन हर दूसरे ऑर्ग के भुगतान को तोड़ देता है एक ही पल में अंतर्ग्रहण। प्लेटफ़ॉर्मOAuthProvidertype में कोई क्विकबुक, XERO या SQUARE स्थिर नहीं है - यह ADP WFN(17) में समाप्त होता है, इसके ids को जारी रखा जाता है और यह केवल परिशिष्ट होता है। योजना के कार्य 1 चरण 3 निर्देश के अनुसार, सभी तीन जहाज PER ORG CREDENTIALS एक साझा वृद्धि के बजाय एक null पंजीकरण के साथ इस कार्य में मूल enum। यह योजना बनाती है ************* अपने पर खाली PlatformOAuth() शाखा का उपयोग करता है, इसलिए पांचवां टेस्ट सीधे परिणाम बताता है: कोई भी प्रकार का दावा नहीं किया जा सकता है PLATFORM OAUTH, जिसमें कोई पंजीकरण नहीं है। TDD सबूत। लाल (टेस्ट लिखित, कोई कार्यान्वयन नहीं): [ERROR] ************* चिह्न नहीं मिल सकता [ERROR] प्रतीक: चर बिलिंगProvidertype [ERROR] स्थान: वर्ग **************** [ERROR] ************* चिह्न नहीं मिल सकता [ERROR] प्रतीक: चर बिलिंगAuthKind ग्रीन: [INFO] टेस्ट रन: 5, विफलता: 0, त्रुटियाँ: 0, छोड़ दिया: 0 - में ************* MUTATION (KAMO NATIVE authKind NONE -> PER ORG CREDENTIALS) — बिल्कुल एक लाल, जो बिंदु है परीक्षण: [ERROR] टेस्ट रन: 5, विफलता: 1, त्रुटियाँ: 0, छोड़ दिया: 0 << FAILURE! [ERROR] ************* << FAILURE! ************* उम्मीद: लेकिन था: PER ORG CREDENTIALS ************* उलटा। पूर्ण सूट: टेस्ट रन: 2271, विफलता: 0, त्रुटियाँ: 0, छोड़ें: 0 / BUILD SUCCESS. अपने लक्ष्य के साथ अलग-अलग `git संग्रह HEAD` प्रतिलिपि में भाग लें / और अपने स्वयं के -Dmaven.repo.local, साझा चेकआउट में नहीं: दूसरा सत्र मध्य-TDD था इसमें **************** अभी तक कार्यान्वयन), इसलिए `mvn परीक्षण` कारणों से असंबंधित के लिए लाल है यह परिवर्तन। ~/.m2 को नहीं लिखा गया था और mvn स्थापित नहीं किया गया था। नहीं धक्का दिया - टास्क 9 पहले डीडीएल भूमि।.

  13. · KlusterServices

    हर kamocrm एक्सटेंशन WebRTC और गेट आउटबाउंड कॉलिंग देना

    सभी 21 kamocrm टीम के सदस्य अब k1m1 PBX पर 8XXX एक्सटेंशन रखते हैं (क्रिस ने 7255 से 8134) तक की छूट दी। यहां दो बदलाव आते हैं। वेबआरटीसी एंडपॉइंट ब्लॉक अब हर स्टाफ एक्सटेंशन को कवर करता है बजाय तीनों ने देखा था कि टूट गया था। कामो सॉफ्टफोन एक ब्राउज़र है, इसलिए DTLS/ICE एक वृद्धि नहीं है - एक ब्लॉक के बिना एक विस्तार WS पर रजिस्टर और फिर किसी भी कॉल पर कोई ऑडियो नहीं है। 8888 महीनों के लिए सूचीबद्ध नहीं है। आउटबाउंड कॉलिंग अब अनुमति प्राप्त है: केवल एक्सटेंशन में सूचीबद्ध है [kamo-outbound-allowed] ट्रंक तक पहुंच गया। हर कोई एक्सटेंशन-टू- रखता है पीएसटीएन से एक्सटेंशन डायलिंग और इनबाउंड, जिनमें से दोनों के माध्यम से चल रहे हैं इससे कोई फर्क नहीं पड़ता। गेट आउटबाउंड के बजाय [from-internal-custom] में रहता है मार्ग क्योंकि से आंतरिक xfer शामिल है कि संदर्भ आगे से बाह्य-पारंपरिक से, इसलिए यह आउटर्ट- से पहले एक डायल नंबर देखता है 1 करता है। मार्ग के अपने match cid स्तंभ विकल्प था और होगा अनुमत एक्सटेंशन के अनुसार एक डुप्लिकेट पैटर्न पंक्ति की आवश्यकता होती है, और इसके साथ डेनि FreePBX's "बोले जाने के रूप में पूरा नहीं किया जा सकता" - एक संदेश जो कर्मचारियों को भेजता है एक संख्या में एक टाइपो के लिए शिकार जो ठीक था। सदस्यता एक लाइन के संदर्भ में DIALPLAN EXISTS के साथ जांच की जाती है प्रति व्यक्ति, इसलिए आधा-मैच नहीं: 80800 और एक खाली कॉलर आईडी दोनों इनकार करना, जो असफल होने की सुरक्षित दिशा है। तीन अवरोध पैटर्न बाहरी मार्ग का दर्पण प्राइमरीरॉयट का डायल पैटर्न है और इसे करना है रहना K1m1 पर सत्यापित: सभी 21 समापन बिंदुओं की रिपोर्ट ice support=true, Media encryption=dtls, WS परिवहन और Direct media=false; सभी 21 सही AMPUSER डिवाइस और संकेत कुंजी ले लो; अभी भी अनुमति पथ घरेलू और 011 पैटर्न दोनों के लिए आउटर्ट-1 को हल करता है।.

  14. · kamo-internal

    ServiceJobApi.createJob, और बैक-लिंक बिल्डर

    SW6c टास्क 2 के क्लाइंट आधे को पुनर्स्थापित करता है, जो 157fa714 के रूप में उतरा और गिरा दिया गया था एक इतिहास द्वारा एक समवर्ती सत्र में फिर से लिखना; खुद स्क्रीन बनाने से बच गया Bddd3617 के अंदर और इन दोनों के बाद से आयात किया गया है। `createJob` पदों `CreateJobInput` आधार पथ पर और विस्तार के साथ जवाब प्रक्षेपण, इसलिए एक कॉलर लौटे हुए काम को पूरा कर सकता है। सात क्षेत्रों और नहीं एक कॉलम सर्वर का मालिक है: कोई स्थिति, कोई नौकरी नंबर, कोई कुल नहीं, कोई साइन-ऑफ नहीं। SW6b 'PUT /{uid}` स्वीकार किए जाने के बाद 'JobInput' से उन पांचों को बिल्कुल हटा दिया गया उन्हें क्रियाशील कहते हैं, और `CreateJobInput` अनुबंध परीक्षण के इनपुट जोड़े में शामिल हो जाता है ताकि एक `status` इस पक्ष में जोड़ा गया है, केवल धारावाहिक और चुपचाप होने के बजाय विफल रहता है ध्यान नहीं दिया गया। `commercebackHref` को इसकी परिभाषा पर दस्तावेज दिया गया है: `/commerce?tab=service` कभी नहीं एक वास्तविक टैब नाम दिया गया है, और आज हर कॉलर कोई बाजार में नहीं गुजरता क्योंकि कोई सेवा नहीं रिकॉर्ड एक करता है।.

  15. · kamo-internal

    सर्विस-रीक्वेस्ट ग्रिड और क्लाइंट ने वास्तविक समापन बिंदुओं को पढ़ा

    बाकी SW6c टास्क 4 को पुनर्स्थापित करता है, जो d58a6aba के रूप में उतरा था और इसे गिरा दिया गया था। इतिहास एक समवर्ती सत्र में फिर से लिखना; विस्तार पृष्ठ bddd3617 के अंदर बच गया और बाद में `serviceQuoteWorkOrder` आयात किया गया है। `PipelineServiceRequestTab`` ने `GET/service-quotes` को इसके बजाय बुलाया `generateMockServiceRequest`. अनुरोधकर्ता, विभाग, श्रेणी, प्राथमिकता, SLA, तकनीशियन और टीम कॉलम चले गए हैं: तार पर कोई स्रोत नहीं है, और एक स्तंभ कि "यह" के बजाय "nothing रिकॉर्ड" के रूप में हमेशा के लिए पढ़ने के लिए एक एम डैश प्रदान करता है कभी वास्तविक नहीं था - कैसे `serviceName`, `serviceId` और `engagement Id पूरे स्क्रीन के जीवनकाल से पहले SW6a। स्थिति `IntentStatus` के पांच मान हैं, नहीं जुड़नार के छह और स्टेटस बटन इसके साथ चले गए हैं: वे एक स्थानीय स्थान पर चले गए सरणी और एक लिखने के लिए एक सफलता टोस्ट उठाया कि कभी ब्राउज़र छोड़ दिया। वास्तव में एक प्रस्ताव भेजता है और ऐसा कहते हैं। `CreateserviceQuoteRequest` `List<long> serviceOfferingUids` को विज्ञापित करता है और सेवा केवल `.get(0)`` रखती है। चुपचाप। नया बटन ********** वहाँ मौजूद नहीं है; यह एक संवाद खोलता है। `marketId` इस सूची को फ़िल्टर नहीं कर सकता है, इसलिए `data.filter(() => सही)``` जो तैयार है एक फिल्टर के रूप में जाना जाता है और एक कैप्शन का कहना है कि हर बाजार उसी पंक्तियों को दिखाता है। `posApi.serviceQuote` ने डीटीओ भेजने के खिलाफ `serviceId` और `serviceName` घोषित किया `serviceofferingUid` और `serviceofferingName` - भाई बहन पर एक ही दोष टाइप करें - और अब `serviceQuoteDTO` दर्पण। `workOrder`s phantom सदस्य हैं सही भी, क्योंकि उनमें से एक लोड-असर होने के लिए निकल जाता है: `AceptserviceQuote` उत्तर के साथ `FulfillmentOrder`, जिसका uid नहीं है `serviceJob`'s, and `engagementUid` is only Thread पार. `serviceQuoteWorkOrder.ts` इसका अनुसरण करता है, और इसका परीक्षण पिन उस हिस्से को करता है जो काम करेगा एक बीज डेटाबेस पर और उत्पादन में बंद - `JsSafeLongSerializer` एक उद्धरण मूल्य से `long`, इसलिए वही क्षेत्र एक स्ट्रिंग के रूप में 19-अंक आईडी और एक पर आता है एक छोटा सा नंबर.

  16. · kamo-internal

    एक बग रिपोर्ट पर स्क्रीनशॉट और वीडियो

    रिपोर्टर का पीछा में स्क्रीन रिकॉर्डिंग का वर्णन किया गया था और फिर फ़ाइल पोस्ट करना एक चैट में, क्योंकि रिपोर्ट फॉर्म केवल अभी भी लिया है। यह अब MP4, MOV लेता है और WebM चार छवि प्रारूपों के बगल में, प्रत्येक में 100 MB तक, उसी दस-फ़ाइल के अंदर टोपी। ड्रॉपज़ोन अब अपने नियमों को लागू नहीं करता है। यह बैच को सौंप देता है एक नई प्रणाली के खिलाफ `ingestFiles` BUG ATTACHMENT POLICY, एक ही रास्ता एक चैट संदेश और एक ईमेल के माध्यम से जाना जाता है, जो इसे प्रति वर्ग के आकार की छत, एक है एक फ़ोल्डर के रूप में पहचाने गए फ़ोल्डर को हटा दिया गया, एक डुप्लिकेट ड्रॉप को नजरअंदाज कर दिया गया और एक कॉपी किया गया स्प्रेडशीट कोशिकाओं की रेंज चुपचाप एक बिटमैप बनने के बजाय पाठ के रूप में छोड़ दिया। एक इनकार कर दिया फ़ाइल अब इसके साथ शेष बैच को त्याग नहीं देती है। ऑब्जेक्ट URL `DraftThumbnails` का उपयोग करने के लिए, इसलिए यहां कुछ भी नहीं है कि वह एक रद्द करने के लिए याद रखें। वीडियो इस तरह से प्रस्तुत करता है कि यह पहले से ही उत्पाद में हर जगह करता है: एक पोस्टर '#t=0.1' चाल और टाइल, ब्राउज़र नियंत्रण पर एक प्ले बैज के साथ तैयार फ्रेम लाइटबॉक्स में। थंबनेल मेटाडाटा-केवल प्राप्त होते हैं, इसलिए टाइलों से भरा एक दराज पूरे क्लिप को नीचे नहीं खींचता है - जो रेंज सपोर्ट को जोड़ा गया है मीडिया सर्विस के लिए है, और क्यों इस प्रॉक्सी रेंज और 206 दोनों के माध्यम से गुजरता है उन्हें ढहने के बजाय दिशाएं। अपलोड रूट फॉर्मडाटा () के साथ शरीर को पार्स करना बंद कर देता है। उस ने पूरे फाइल को आयोजित किया इस प्रक्रिया के ढेर में, 10 MB स्क्रीनशॉट के लिए जीवित रहने योग्य और 100 MB के लिए नहीं रिकॉर्डिंग; यह अब नोड के माध्यम से पाइप करता है:http जैसे चैट अपलोड करता है, उसी के लिए undici-timeout कारण। जब यह काम करता है तो बटन फाइलों की गणना करता है - रिपोर्ट प्राप्त करें प्रगति को अपलोड करना, और "अपलोडिंग" कुछ मिनट के लिए वहाँ बैठे एक हैंग के रूप में पढ़ा। एआई को केवल छवियों को सूचीबद्ध करता है। एक सत्र एक तस्वीर पढ़ता है और एक वीडियो नहीं देख सकता है, इसलिए पेशकश करने के लिए असफल हो जाएगा; संवाद का कहना है कि कितने रह रहे हैं पीछे, और सुरक्षा सेवा ने एक नाम से मना कर दिया अगर एक कहानी कंसोल इसे भेजता है।.

  17. · MediaService

    एक वीडियो को बग रिपोर्ट में संलग्न करें, न केवल एक स्क्रीनशॉट

    अभी भी इस बात से पहले तीन क्लिकों को नहीं दिखा सकते हैं, इसलिए रिपोर्टर थे इसके बजाय एक चैट में फ़ाइल को पोस्ट करने और पोस्ट करने में रिकॉर्डिंग का वर्णन करना। The संलग्नक समापन बिंदु अब MP4, MOV और WebM को चार छवि प्रारूपों के बगल में लेता है। - जादू संख्या sniff एक वीडियो आधा बढ़ा। केवल एक ftyp बॉक्स कहते हैं "आईएसओ बेस मीडिया ", इसलिए ब्रांड एक स्वीकार्य के खिलाफ मेल खाता है: HEIC, AVIF और 3GP कैरी एक ही बॉक्स और एक अभी भी वीडियो / एमपी 4 के रूप में संग्रहीत एक <video> तत्व है कि पहुँच जाता है एक मृत खिलाड़ी दिखाता है। Matroska केवल तभी स्वीकार किया जाता है जब उसके EBML DocType कहते हैं "webm" - एक सादे .mkv में कोई ब्राउज़र कंसोल में चलाता है। - वीडियो अपनी खुद की 100 एमबी छत प्राप्त करते हैं; छवियां 10 एमबी रखती हैं। दस-फ़ाइल टोपी spans दोनों प्रकार। जांच का आदेश लागत से है: गणना, फिर बाहरी छत, फिर प्रारूप, फिर तरह की अपनी छत - पहले sniffing एक फ़ाइल है कि था पढ़ा होगा हमेशा मना कर दिया जाना चाहिए। - एक नाम का अपलोड नाम दिया गया है कि बाइट्स क्या हैं। संग्रहीत वस्तु की कुंजी है उस एक्सटेंशन द्वारा, इसलिए एक पेस्ट रिकॉर्डिंग स्क्रीनशॉट को बुलाना। png डालेगा। MP4 पर और ब्राउज़र को एक <video> यह शुरू नहीं होगा। - सामग्री समापन बिंदु उत्तर रेंज अनुरोध, जो एक बार वीडियो के लिए वैकल्पिक नहीं है संलग्न हैं: एक <video> उनके बिना नहीं तलाश सकती है, सफारी हर वीडियो को खोलती है "bytes=0-1" के साथ और 200 को "यह सर्वर वीडियो नहीं करता" के रूप में पढ़ता है, और एक गैलरी थंबनेल को मेटाडाटा-केवल पूरे होने के बजाय लाने से तैयार किया जाता है क्लिप पार्सिंग दर्पण इमेजिंगप्रोक्सीकंट्रोलर। रेंजस्ट्रीम अब बंद है जब जवाब खत्म हो जाता है; इससे पहले कुछ भी बंद नहीं हुआ था।.

  18. · kamo-internal

    पाइपलाइन उद्धरण टैब और तार उद्धरण रूपांतरण को पुनर्स्थापित करें

    `POST/quotes/{uid}/कन्वर्ट` SW4 में भेज दिया गया है और इसे कभी नहीं बुलाया गया है: `quotesApi` के दस तरीके थे और `कन्वर्ट` उनमें से नहीं था, इसलिए समापन बिंदु जीवित और अप्राप्य था। यह सेवा पर वापस एक उद्धरण डालता है पाइपलाइन और प्रदान करता है एक ACCEPTED बोली पर परिवर्तित। कारण यह आवश्यक कोड से पहले एक परीक्षण की जरूरत: `subTablabels` एक है `Record<PipelineSubTabId, स्ट्रिंग>`, इसलिए एक लापता लेबल एक कम्पाइल त्रुटि है, लेकिन `renderSubContent` ने फैसला किया कि चार `if (id === "intents") रिटर्न के साथ क्या आकर्षित किया जाए X; वापसी Y; ` chains, और that trailing `return Y` उत्तर हर id nobody इसके बारे में सोचा। एक आईडी को गिरफ्तार करने के कारण स्क्रीन पर एक नया टैब डाल दिया जो चुपचाप सभी चार वर्टिकल्स में प्रतिबद्धताओं की सूची को आकर्षित किया और टाइपचेक किया। यही है दोष `pipelineSubTabs.ts` के अपने हेडर कथाओं ने पहले से ही एक बार भेज दिया है। ************* स्रोत के खिलाफ जोर देते हैं, कि हर `SUB TAB IDS` प्रविष्टि हर ऊर्ध्वाधर में नामित है। यह किसी भी शाखा से पहले लाल था बदल गया - `संवाद` पर, सभी चार वर्टिकल में, क्योंकि गिरावट के माध्यम से इसका नाम कभी नहीं है। समाप्त कोड पत्तियों से एक `case` को हटा देना `tsc -noEmit` चुपचाप और परीक्षण लाल हो जाता है, जो इसका पूरा बिंदु मौजूद है। श्रृंखला अब कोई `default` के साथ स्विच कर रहे हैं। कोई उद्धरण सतह के साथ एक ऊर्ध्वाधर अभी भी `case "quotes" लिखते हैं:` इसकी प्रतिबद्धताओं के मामले के बगल में, इसलिए अगले आईडी जोड़ा गया किसी को जवाब देने के बजाय चार बार चुना जाता है। केवल सेवा `SUB TABS BY VERTICAL` में `quotes` को सूचीबद्ध करती है, इसलिए केवल सेवा से पता चलता है टैब - RENTAL पर एक उद्धरण टैब जो बुकिंग प्रदान करता है वही चुप होगा एक नए स्थान पर गलतफहमी। स्ट्रिप ऑर्डर अभी भी `SUB TAB IDS` से आता है: नया नक्शा एक सेट है, और 'टैब वैल्यू' 'SUB TAB IDS' इंडेक्स में रहता है, इसलिए एक टैब को छोड़ देना दूसरों को अस्वीकार नहीं कर सकता। `subIndexForVertical` clamps a `?sub=quotes` link वह टैब के बिना एक ऊर्ध्वाधर पर उतरता है, जिसे MUI अन्यथा एक के रूप में प्रस्तुत करेगा। गिरावट वापस सामग्री पर खाली चयन। `quotesApi.convert` 409 और 404 अलग रखता है, क्योंकि वे अलग-अलग चीजें कहते हैं: 409 "यह उद्धरण राज्य गलत है, और सर्वर का कारण उपयोगी आधा है", 404 "यह इस ओर से चला गया है" है। किसी को एक रिकॉर्ड बताने के लिए वे देख रहे हैं जब सच्चाई अभी तक स्वीकार नहीं की जाती थी तब उन्हें एक डेटा का शिकार करने के लिए भेजा जाता है समस्या यह है कि अस्तित्व में नहीं है, इसलिए केवल 404 बलों एक फिर से लोड। `QuoteConversion.orderUid` एक `string` है। `Order's BaseEntity', जिसका id है `INT8 DEFAULT unique rowid()`; सर्वर पहले से ही फील्ड को घोषित करता है। स्ट्रिंग, और अगला प्रॉक्सी शरीर को नोड में एक हॉप अपस्ट्रीम ऑफ द बॉडी की मरम्मत करती है ब्राउज़र, इसलिए किसी भी क्लाइंट कोड को देखने से पहले एक नंगे int64 राउंड होगा। `total` को `string' कहा जाता है और `number()` के माध्यम से पढ़ा जाता है। `bigDecimal`, और `HttpWireJacksonConfig` केवल `long` को स्ट्रिंग करता है। परिवर्तित ACCEPTED पर की पेशकश की है और कुछ नहीं; स्वीकार करते हैं और डिकोडर पर रहते हैं ग्राहक का टोकनाइज़ पेज, जहां स्वीकृति एक ऑर्डर बाकी है वास्तव में दिया गया। उत्पादन में 15 उद्धरण हैं, सभी DRAFT, इसलिए बटन वर्तमान में दिखाई दे रहा है उनमें से कोई भी नहीं।.

  19. · kamo-marketing

    हमारी कीमत सूची से आती है, और फिर से टाइप नहीं की जा सकती है

    तुलना पृष्ठ हार्डकोडेड KamoCRM $29 स्टार्टर और $64 बिजनेस जबकि कैटलॉग ने उन्हें $ 34 और $ 72 में बेचा। नौ फाइलें, चालीस-दो उल्लेख, और निर्माण पूरी तरह से हरा था - गद्य में एक कीमत सिर्फ गद्य है। वे {स्टार्टरमासिक} / {व्यापारमासिक} टोकन ले जाते हैं, जो रेंडर पर हल हो जाते हैं उसी सूची से मूल्य निर्धारण पृष्ठ को पढ़ता है, अपनी कैश प्रविष्टि साझा करना एक समान यूआरएल और revalidate के माध्यम से। सूची में एक योजना की मरम्मत करना है केवल किसी को संपादित करें। बहुसंख्यक रूप कुलों को कवर करता है जो प्रतिलिपि जोर से गणना करती है - एक दस सीट टीम के लिए {व्यापारमासिक * 10}, {व्यापारमासिक * 50 * 12} के लिए तीन साल सेल्सफोर्स तुलना। वे हार्डकोड के सबसे खराब थे संख्या: एक प्रतियोगी के बिल के खिलाफ उद्धृत, आधिकारिक के रूप में पढ़ा, और गलत वास्तव में, उनके पीछे इकाई मूल्य गलत था। स्थानीयकरण के बाद प्रतिस्थापन रन, इसलिए अनुवादित पृष्ठ लाइव नंबर प्राप्त करते हैं यह भी लागू किया जाता है जहां भी प्रतियोगी डेटा केवल जहां से पढ़ा जाता है यह वर्तमान में होना चाहिए - एक ऐसा क्षेत्र जो बाद में पैसे का उल्लेख करना शुरू कर देता है चुनने के लिए याद नहीं करना चाहिए। चेक-मूल्य टोकन दोनों दिशाओं की रक्षा करते हैं: हमारे आंकड़े को एक साक्षर के रूप में टाइप किया गया है, और एक टोकन जो हल नहीं करेगा। A typo'd {businessmonthy} जहाजों को दिखाई देने के रूप में कचरा, जो एक कहानी संख्या से भी बदतर है। प्रतियोगी मूल्य साक्षर रहते हैं, जो एक तुलना का बिंदु है - गार्ड उन्हें निकटता से अलग बताता है एक कामो उल्लेख करने के लिए और क्या राशि किसी श्रेणी का एक समापन बिंदु है। FALLBACK KAMO PRICES क्या CI के साथ प्रस्तुत करता है, क्योंकि API कुंजी अनुपस्थित है वहाँ और इन पृष्ठों prerender। यह जानबूझकर लाइव कैटलॉग मान है: एक नए स्थान पर एक कहानी गिरने वाला एक ही बग होगा।.

  20. · KlusterServices

    एक्सटेंशन-टू-एक्सटेंशन कॉल पर रिकॉर्ड-सेल नोटिस

    तीसरे कॉल पथ को पूरा करता है। स्टाफ-टू-स्टाफ कॉल कभी भी उपस्थित व्यक्ति को स्पर्श नहीं करते हैं - वे आंतरिक से जाते हैं -> ext-local, जहां डायल FreePBX से संबंधित है - इसलिए [from-internal-custom] अब वास्तविक एक्सटेंशन को रोकता है और उन्हें माध्यम से रूट करता है [kamo-internal-connect], जो अपने डायल के मालिक हैं और AA (A) ले जा सकते हैं। इंटरसेप्शन केवल दो चीज़ों की वजह से सुरक्षित है, पहले नहीं माना जाता है: - से-internal-noxfer, जो आंतरिक परामर्श से पहले से आंतरिक-xfer, एक्सटेंशन को हल नहीं करता है। ऐसा करने के लिए, से आंतरिक ग्राहक कभी नहीं होगा वहाँ पहुँच गया है और यह चुपचाप कुछ भी नहीं किया जाएगा। - से आंतरिक ग्राहक से पहले से आंतरिक xfer द्वारा शामिल किया गया है अंतःक्रियात्मक, इसलिए यह पहले एक्सटेंशन देखता है। जो कुछ भी वास्तविक विस्तार नहीं है वह सीधे फ्रीपीबीएक्स को सौंपा गया है, इसलिए आंतरिक डायलप्लान परिवर्तनों पर और कुछ नहीं। DIALPLAN EXISTS का परीक्षण किया गया है बल्कि माना जाता है, क्योंकि एक नंगे गोटो को लापता विस्तार के लिए कॉलर पर लटका दिया जाता है बजाय "नहीं सेवा में" खेलने के लिए। प्रतिगमन-परीक्षण सभी तीन आंतरिक मामलों: - 8912 (वास्तविक, ऑफ़लाइन) -> कामो-internal-connect, Dial PJSIP/8912,15,AA(...), उपयोगकर्ता क्षेत्र DS:CHANUNAVAIL/VM:डिफ़ॉल्ट, वॉयसमेल में गिर जाता है - 8080 (वास्तविक, ऑनलाइन) -> डायल PJSIP/8080,15,AA(...), फ़ोन rang - 7777 (ext-test) -> अभी भी ext-test तक पहुंचता है और फिर से pstn के माध्यम से वापस लूप करता है - 3000 (खराब संख्या) -> अभी भी खराब संख्या तक पहुंचता है। यह कोई CDR पंक्ति लिखता है, जो एक विफलता नहीं है: खराब संख्या में रीसेटCDR () है और CDR PROP(Disable)=true by Design. दोनों पक्षों ने आंतरिक कॉल पर AGENT रिकॉर्डिंग सुनी: कोई ग्राहक नहीं है कॉल पर, इसलिए क्लाइंट-फेसिंग शब्दिंग को किसी ऐसे व्यक्ति को संबोधित किया जाएगा जो वह है नहीं। प्रत्येक पक्ष अपनी वैश्विक है, इसलिए यह एक लाइन परिवर्तन है। जब एक्सटेंशन में मेलबॉक्स नहीं होता तो आंतरिक नोनर vm-nobodyavail खेलता है - जानबूझकर ग्राहक कतार नहीं है, जहां इनबाउंड कॉलर वापस गिर जाते हैं।.

  21. · SecurityService

    POST/service-jobs, gated on manage SERVICE WORK

    क्रिया का निर्माण कार्य-आदेश की सतह कभी नहीं थी। app/commerce/service/new सत्रह-लाइन प्लेसहोल्डर क्योंकि कॉल करने के लिए कुछ भी नहीं था। Manage SERVICE WORK पर हर दूसरे को यहाँ लिखना पड़ता है। यह एक CHILD है View SERVICE WORK, इसलिए स्वीकार करने का दृष्टिकोण अभी भी प्रवेश करते समय गेट दिखाई देगा। जो लोग केवल बोर्ड देख सकते हैं - ServiceJobRightsGateTest नए ड्राइव एक दृष्टिकोण सत्र के साथ हैंडलर और दावा करता है कि सेवा कभी नहीं पहुंची है। किरायेदार सत्र बंद हो जाता है और अपने पहले तर्क के रूप में सेवा तक पहुंच जाता है, जहां यह क्वेरी के अंदर एक भविष्यवाणी बन जाती है; शरीर का बाजारउड और ग्राहक का नाम किसी संगठन के बारे में कुछ नहीं है। बाजार या खाते से संबंधित दूसरा किरायेदार "नहीं मिला" है और जवाब 404, एक है कि से अविस्मरणीय कभी अस्तित्व में नहीं। GetJobInput के घटक पर जोर दिया जाता है: कोई स्थिति, कोई नौकरी नहींम्बर, कोई कुल नहीं, कोई नहीं साइन-ऑफ अब चार POSTs की उम्मीद है, इसलिए अगले प्रॉक्सी के लिए इस सतह को अभी भी सभी पांच क्रियाओं का निर्यात करना पड़ता है।.

  22. · kamo-shared-library

    इसलिए एक कार्य आदेश बिना किसी आदेश के उठाया जा सकता है

    एक क्रिया सेवा नौकरी की सतह गायब हो गई थी। अभी तक एकमात्र बात एक सेवा का उत्पादन करने वाला मंच **************** एक भुगतान आदेश बंद - यही कारण है प्रत्येक सेवा कार्य तालिका में शून्य पंक्तियां होती हैं। मेकजोबइनपुट सर्वर के मालिक कोई कॉलम नहीं रखता है: कोई स्थिति नहीं, कोई नौकरी नहींम्बर, कोई नहीं कुल, कोई हस्ताक्षर नहीं At SW6b ने आखिरकार जॉबइनपुट से उन पांच लोगों को ले लिया PUT /{uid} को उन्हें मौखिक रूप से स्वीकार किया जाता है; एक ऐसा पथ जो उन्हें लिया गया था, उसे चुना जाएगा। इस पर एक अलग नाम के साथ एक ही दरवाजा। स्रोतसमिति शून्य रहती है, जानबूझकर। प्रक्रियाआदेश `if (order.getCommitment() != null) वापसी;`, इसलिए एक प्रतिबद्धता ने यहां आविष्कार किया यदि यह काम पूरी तरह से भुगतान-ऑर्डर डाउनस्ट्रीम को निष्क्रिय कर देता है तो एक nullable कॉलम को भरें बाद में एक आदेश में शामिल हो गए। One ServiceVisit, sceneNo 1, SCHEDULED, कोई कैलेंडर घटना और कोई असाइनी - उसी चार तथ्यों का निर्माणFromCommitment लिखते हैं, इसलिए नौकरी उसी तरह दिखती है हालांकि इसे उठाया गया था। बाजार और ग्राहक को क्वेरी में ऑर्ग भविष्यवाणी के साथ हल किया जाता है (FindByIdAndOrganizationId / findByUidAndOrganization), जोड़ी SW4 पर इस्तेमाल किया Quoteservice.create. बाजार को संग्रहीत नहीं किया जा सकता है - बाजार पर कोई बाजार स्तंभ नहीं है ServiceJob और सगाई पर कोई नहीं - इसलिए इसका एक टिकाऊ प्रभाव सगाई है प्रकार, **************** वास्तव में एक उद्धरण के रूप में है।.

  23. · kamo-internal

    मिरर व्यू/MANAGE ORDERS और व्यू/MANAGE PRICING

    ग्राहक आधे ऑर्डर-म्यूटेशन होल को बंद कर देता है। सुरक्षा सेवा अब द्वार 39 आदेश, मूल्य निर्धारण और चार नए अधिकारों पर कर समापन बिंदु; ये दो हैं जावा enum के दर्पण जिन्हें इसके साथ स्थानांतरित करना है, या अधिकार मौजूद हैं सर्वर और यूआई से अप्रवासी हैं। अधिकारHierarchy.ts चार किनारों - VIEW ORDERS और VIEW PRICING नीचे हासिल ACCESS COMMERCE, MANAGE ORDERS under the first and MANAGE PRICING under the first and MANAGE PRICING. दूसरा - जो कि संपादक कैस्केड को सर्वर के साथ सहमत बनाता है सामान्यीकरण। रोलRighttype.ts चार स्थिरांक और उनके चार लाभ values प्रविष्टियों; उस सरणी में से एक निरंतर छोड़ा सब कुछ के लिए अदृश्य है कि iterates enum, और अनुमति संपादकों iterate. कोई अनुमति-धारा परिवर्तन की आवश्यकता नहीं थी: सभी चार कैरी सर्विस टाइप। पीओएस और पीओएस वाणिज्य पंक्ति पहले से ही अनुमति में मौजूद हैAppSections.ts और इसकी इनलाइन SecurityRoleManager.tsx में डुप्लिकेट, इसलिए वे आगमन पर योग्य हैं। दोनों टिप्पणी इसलिए कहने के लिए ठीक कर रहे हैं बजाय गिनती की कहानी छोड़ने के लिए। कोई शब्दकोश परिवर्तन नहीं - दायां लेबल जावा `display` स्ट्रिंग हैं प्रतिबिंबित क्रियाविधि, i18n कुंजी नहीं। सेवा कार्य के पांच जोड़े इसी कारण के लिए कामो अनुवाद शब्दकोश। समानता कुल 189 -> 193। जावा स्रोत के खिलाफ सत्यापित अधिकारHierarchyParity और भूमिकाRightMirrorParity, जिसके दोनों ने पढ़ा kamo-shared-library सीधे; पूर्ण सूट 278 फाइलें / 3603 परीक्षण, 0 विफलताएं।.

  24. · kamo-shared-library

    View/MANAGE ORDERS and VIEW/MANAGE PRICING, ids 273-276

    कोई भी आदेश-म्यूटेशन कहीं भी मौजूद नहीं है। POSController के आदेश समापन बिंदुओं और वाणिज्य में हर मूल्य निर्धारण और कर हैंडलरमार्केट कंट्रोलर ने ऑर्ग को पढ़ा सत्र और किसी और की जाँच नहीं की, इसलिए किसी भी भूमिका का कोई भी प्रामाणिक सदस्य हो सकता है बनाने, संपादित करने, वापसी और फिर से स्टेटस आदेश - और फिर से मूल्य सूची लिखने, कर कक्षाएं, कर क्षेत्र, कर दरों और ग्राहक स्तरों - अपनी ओर के अंदर। कभी नहीं क्रॉस-टेनेंट; भूमिका केवल उन सतहों पर कुछ भी नहीं थी। तीनों के बजाय चार अधिकार: प्रबंधन दोनों जोड़े में दृष्टिकोण को बंद कर देता है ताकि दोनों जोड़े किसी आदेश को बदलने या मूल्य को पढ़ने की क्षमता के बिना नहीं दिया जा सकता है क्या बदल दिया जा रहा है, और इसलिए कि दृष्टिकोण सही स्वीकार करने वाला एक लिखने का समापन बिंदु एक है एक अदृश्य के बजाय पता लगाने योग्य डाउनग्रेड। रायबरेली सजावट - पढ़ने क्या कर दरों और मूल्य सूची हैं एक साधारण वित्त और लेखा परीक्षा की जरूरत है कि उन्हें बदलने की शक्ति नहीं है। मैक्स आईडी को लिखित रूप से पहले मूल/मुख्य के खिलाफ फिर से जांचा गया था: 272। A डुप्लिकेट आईडी एक कलेक्टर है। एक स्थिर प्रारंभिक में असफलता, यानी हर सेवा जो इस enum को लोड करता है, बूट करना बंद कर देता है। पिन्ड गिनती 263/189/35/39 -> 267/193/35/39: सभी चार बच्चे हैं और ACCESS COMMERCE पहले से ही एक जड़ के साथ बच्चे थे, इसलिए केवल दो नंबर चले गए। नोट: यह भी रोलराइट टाइप.जावा में एक पांच लाइन टिप्पणी हटाने किया जाता है इस चेकआउट में एक समवर्ती सत्र द्वारा बनाया गया है। `git प्रतिबद्ध - केवल` लेता है पथ के कार्यक्षेत्र राज्य; परिवर्तन उनका है, मेरा नहीं, और संरक्षित है इसके बजाय छोड़ दिया।.

  25. · KlusterServices

    Recorded-call notice on direct-dialled extensions too

    एक कॉलर जो बधाई पर एक विस्तार डायल करता है अब नोटिस के रूप में सुनता है अच्छी तरह से यह पथ डिड-डायरेक्ट के माध्यम से चला गया, जहां डायल से संबंधित है FreePBX's ext-local, इसलिए A () इसे संलग्न नहीं किया जा सकता - कॉलर पहुंच गया एक एजेंट जिसमें कोई नोटिस नहीं है। डायरेक्ट डायल अब [kamo-direct-connect] के माध्यम से रूट करते हैं, जो अपने स्वयं के डायल का मालिक है इसलिए, aA(agent:client) वास्तव में कतार पथ की तरह किया जाता है। लागत है दो चीज़ों को फिर से कार्यान्वित करने के लिए ext-local को मुफ्त में दिया गया, दोनों ने यहां संरक्षित किया: - रिंग टाइमर: प्रति विस्तार AMPUSER / <ext> / रिंगटाइमर जहां सेट, और FreePBX's RINGTIMER DEFAULT (15s), इसलिए जब तक यह करने के लिए इस्तेमाल किया के लिए एक विस्तार छल्ले - no-answer: एक्सटेंशन का अपना मेलबॉक्स अगर यह एक है, अन्यथा वापस में कॉलर को मृत करने के बजाय एक जीवित व्यक्ति के लिए कतार। कतार का 10 मिनट का टाइमआउट अंततः उन्हें मुख्य मेलबॉक्स में ले जाता है। [kamo-agent-connect] से अलग होकर गुजरना जानबूझकर। उस संदर्भ तक पहुंच गया है कतार सदस्यों द्वारा जहां एक नोनर को ऐप कतार में वापस आना चाहिए ताकि यह कोशिश कर सके अगले एजेंट; एक वॉयसमेल गिरावट को जोड़ने के लिए एक QUEUED कॉलर छोड़ देगा एक एजेंट के व्यक्तिगत मेलबॉक्स में। सत्यापित लाइव: 7255 (कोई मेलबॉक्स, ऑफलाइन) राग 15 तब कतार में वापस आ गया, जो दोनों एजेंटों को घेरता है और 8080 पर जुड़ा हुआ है। शाखा चयन अब दिखाई दे रहा है यूज़रफील्ड के माध्यम से सीडीआर में - 8912 रन रिकॉर्ड डी एस: चैनलवेल / वीएम: डिफ़ॉल्ट, यानी यह सही ढंग से वॉयसमेल के माध्यम से गिर गया। Asterisk फिर logged "कोई ऑडियो नहीं स्थानीय / ...; 2 पर उपलब्ध है, जो औसत परीक्षण चैनल है, नहीं डायलप्लान: `चैनल उत्पत्ति ... एप्लिकेशन वेटर` का कोई मीडिया नहीं है प्लेबैक के लिए पथ, उसी कारण मिक्समॉनिटर उस पर एक खाली फ़ाइल लौटाता है।.

  26. · KlusterServices

    दोनों पक्षों को एक बार में रिकॉर्ड किया गया कॉल नोटिस, फिर एक पुल टोन

    जब कोई एजेंट एक quieued कॉल का जवाब देता है, तो कॉलर ग्राहक नोटिस और ग्राहक नोटिस को सुनता है। एजेंट उसी समय एजेंट नोटिस सुनता है, फिर एक साझा 1000Hz स्वर अंक वे जुड़े हुए हैं। कतार के सदस्य अब स्थानीय चैनलों को [कामो-एजेंट-कनेक्ट] में इंगित करते हैं बजाय PJSIP/<ext> पर सीधे, इसलिए अंतिम पैर एक डायल () है - डायल का A(x:y) है Asterisk में केवल एक चीज जो प्रत्येक पार्टी के लिए अलग-अलग ऑडियो खेलती है और फिर पुल। कतार की घोषणा ओवरराइड एक विकल्प नहीं है: यह करने के लिए नाटकों केवल एजेंट और ब्रिजिंग से पहले जबकि कॉलर अभी भी संगीत पकड़ पर है। A (A) से पहले लोअरकेस `a` linchpin है और वैकल्पिक नहीं है। इसके बिना डायल ने घोषणा समाप्त होने तक कॉलिंग चैनल को अनावरण नहीं किया, इसलिए app queue कभी पुल नहीं है और कॉलर-साइड फ़ाइल किसी चैनल में नहीं होती है सुनना queue log ने इस measurable बनाया: 7s पर कनेक्ट (ऑडियो के बाद) `a` के बिना, इसके साथ 0s पर कनेक्ट करें। पकड़ संगीत मौन और क्रॉस- के साथ कॉलर लेग रिकॉर्ड करके साबित कैप्चर किए गए ऑडियो को सुधारना: बनाम क्लाइंट फाइल 0.833 बनाम एजेंट फाइल 0.068 बनाम होल्ड म्यूजिक 0.044 और 1000 हर्ट्ज टोन टी = 5.75s पर कॉलर के अपने ऑडियो में पता लगाया। दोनों फाइलों को वास्तव में 7.53s (क्लिएंट स्पीच 0.32s छोटा है) के लिए गद्देदार किया जाता है, इसलिए यह मौन के रूप में अंतर करता है और एक ही स्वर के साथ समाप्त होता है, इसलिए टोन आग एक साथ और न तो पार्टी जल्दी जारी की जाती है। टोन का स्तर भाषण से मेल खाता है (RMS 3082 बनाम ~ 3200) - ffmpeg की साइन फिल्टर पूर्ण पैमाने से बहुत नीचे है, इसलिए इसकी आवश्यकता है अनुमान लगाने के बजाय कैलिब्रेट करना। ज्ञात सीमा: यह क्यूईयूई पथ को कवर करता है। एक कॉलर जो एक्सटेंशन डायल करता है सीधे ग्रीटिंग पर अभी भी डिड-डायरेक्ट तक पहुंचता है और कोई नोटिस नहीं सुनता है; रूटिंग कि इस संदर्भ के माध्यम से FreePBX की प्रति-एक्सटेंशन रिंग का व्यापार करेगा टाइमर और वॉयसमेल गिरावट।.

  27. · InitializerService

    प्रत्येक योजना पर 4 जीबी प्रति सीट, और उपयोगकर्ताओं के बजाय सीटें

    भंडारण एक टियर अंतर होने से रोकता है। 2/4/5 सीढ़ी एक गीगाबाइट डाल दिया एक पृष्ठ पर स्टार्टर और बिजनेस के बीच तब यह समझाना पड़ा कि "पूल" क्या है? इसका मतलब यह है कि अब यह हर जगह 4 जीबी प्रति सीट है: एक बार मुफ्त में, विरासत में मिली इसके ऊपर के कार्ड द्वारा। कोई डिस्प्ले कोड की जरूरत नहीं है - कार्ड नीचे एक पर एक टियर के डेल्टा को प्रस्तुत करते हैं, इसलिए समान पंक्तियां अपने दम पर निकलती हैं। एंटरप्राइज़ "संगठन के लिए 150 जीबी" खो देता है। भंडारण Quotaservice केवल पढ़ा numeric value और इसे सीट काउंट द्वारा गुणा किया जाता है, ताकि पंक्ति को बिल दिया जा सके 150 जीबी प्रति सीट जबकि पृष्ठ ने एक फ्लैट पूल का वादा किया। गद्य और कोड असहमत और कोड चुपचाप जीता। USERS सुविधा को इकाई "सीट" के साथ "सीट" लेबल किया गया है। सुविधा CODE है जानबूझकर अपरिवर्तित - यह बेड़े में नाम से मेल खाता है। इसके अलावा आंतरिक मालिक की योजना की मरम्मत भी की जाती है, जबकि कोई भी धक्का नहीं दिया गया था नई छत पर: इसकी मापा पंक्तियों दोनों ने एनयूएलएल को साथ ले लिया numeric is unlimited = झूठा, जो प्लानस्टोरेज एक हार्ड शून्य के रूप में पढ़ता है। योजना जिनका विवरण "हर सुविधा को हर तरह पढ़ता है" का हकदार नहीं था और एक सीट और कामोक्लब इसे 99 सीटों पर रखता है।.

  28. · kamo-internal

    छह कार्य-आदेश टैब जारी रहता है

    SW6b टास्क 4. लेबर, पार्ट्स, टाइम, विक्रेता, साइन-ऑफ और नोट रिएक्ट थे `Usestate` पर `commerce/service/[id]` है और फिर से लोड पर सब कुछ खो दिया है। अब अंतिम बिंदुओं पर लिखने के लिए SW6b टास्क 3 उतरा। ग्राहक `serviceJobApi.java` में तीन ब्रेकिंग बदलावों को प्रतिबिंबित करता है: * `JobInput` खो देता है `labourकुल`, `materialकुल`, `total`, `signedoff` और `signoffAt`. कुलों को नौकरी की लाइनों से सर्वर-साइड को पुनः जोड़ा जाता है प्रत्येक लाइन लिखने, और साइन-ऑफ `PATCH/{uid}/signoff` के माध्यम से जाता है, जो अपने खुद के घड़ी टिकट. उन्हें सामान्य अद्यतन पर छोड़ना एक दूसरा दरवाजा था पांच स्तंभों पर सर्वर का मालिक है, और दूसरा दरवाजा एक नहीं है चेक * `JobView` लाभ `lines`, `notes` और `vendors`. ** नील का मतलब है "लोड नहीं", खाली मतलब "कोई नहीं"* - `listJobs` सभी तीन नल छोड़ देता है इसलिए ग्रिड नहीं है प्रति पंक्ति तीन प्रश्नों को चलाते हैं, और हर टैब दो अलग-अलग बताता है। एक काम है कि बारह है पर "नहीं लाइनों" ड्राइंग। * प्रॉक्सी सभी पांच क्रियाओं का निर्यात करता है। POST और DELETE जानबूझकर अनुपस्थित थे जबकि एक नौकरी में कोई बच्चा नहीं था; एक पंक्ति और एक विक्रेता सगाई बनाई गई है और यहां हटा दिया गया तो दोनों को अब मैप किया गया है। ************* दोनों दिशाओं में सेट पर जोर देते हैं और उनके साथ चौड़ी हुई थी। हर उत्परिवर्तन पूरे विस्तार `JobView` और प्रत्येक हैंडलर हाथ के साथ जवाब देता है यह सीधे `adopt` है। कुछ भी हाथ से लिखने का प्रभाव नहीं मिला: तीन कुल सर्वर हैं और कोई ग्राहक अंकगणित उन्हें पुन: उत्पन्न नहीं करता है। `adsp` जानबूझकर साइन-ऑफ ड्राफ्ट को फिर से नहीं मिला - SW6a का पेज हर बार फिर से बेचा गया प्रत्येक प्रतिक्रिया से स्थानीय क्षेत्र, इसलिए लाइन को चुपचाप खारिज कर दिया गया जो कुछ भी इंजीनियर ने पूरा लेखन में टाइप किया था। केवल भार और भार सफल साइन-ऑफ इसे फिर से बीज बचाते हैं। नोट टैब को मार्कअप से प्रकाशित किया जाता है जो मृत कार्य-आदेश से बाहर निकला है संवाद, अपनी पांच मौजूदा कुंजी का पुन: उपयोग करना। दो प्रस्थान, दोनों में दर्ज कोड: नोट लेखक एक आईडी है और टैब वर्तमान सदस्य के लिए "आप" कहता है और किसी अन्य के लिए लेखक की रेखा को छोड़ देता है, क्योंकि कोई समापन बिंदु किसी को हल नहीं करता है सदस्य आईडी का बैच नामों के लिए और एक शीर्षक के तहत एक नंगे 19-अंक संख्या है कि कहते हैं कि "लेखक" कोई भी मदद नहीं करता है; और साल्वेज के `.reverse()` को गिरा दिया जाता है, क्योंकि सर्वर पहले से ही नवीनतम-पहली और रिवर्सिंग का जवाब देता है जो सबसे पुराना है शीर्ष। `commerceVendorDirectory.ts` नया है और मौजूद है क्योंकि `posApi.getVendors()``` विक्रेता पिकर के लिए इस्तेमाल नहीं किया जा सकता: `POSController.getVendors` उत्तर के साथ `Vendor` इकाई, जिसका `uid` एक ~19-digit` `unique rowid()` है जिसे एक के रूप में लिखा गया है नंगे JSON संख्या, इसलिए `JSON.parse` किसी भी घटक से पहले इसे गोल करता है और इसे देखता है `posApi.Vendor` विधिवत `uid: number` घोषित करता है। एक दौर के साथ एक विक्रेता को संलग्न करना आईडी एक पंक्ति का नाम है जो मौजूद नहीं है। यह मॉड्यूल पाठ के रूप में प्रतिक्रिया पढ़ता है और पार्सिंग से पहले लंबी `uid"` मान उद्धृत करता है। संकीर्ण फिक्स एक डीटीओ है जो भेजता है एक स्ट्रिंग के रूप में आईडी, जैसा कि 'सर्विसJobApi' करता है; जब तक कि यह मौजूद नहीं है यह है ईमानदार पढ़ाना शब्दकोश पहले उतरा: kamo-translation-dictionary 0eaab740।.

  29. · KlusterServices

    मीडिया पॉड को विज्ञापित सार्वजनिक आईपी पास करें

  30. · SecurityService

    लाइन्स, नोट्स, विक्रेताओं, साइन-ऑफ और क्लॉक के लिए आठ कार्य-आदेश समापन बिंदु

    SW6b टास्क 3, नियंत्रक आधा। POST/PUT/DELETE/{jobUid}/lines/..., POST /{jobUid}/notes, POST/DELETE/{jobUid}/vendors/..., PATCH/{jobUid}/signoff and PATCH **************** Reads on view SERVICE WORK; हर आठ में से एक MANAGE SERVICE WORK है। Manage SERVICE WORK VIEW SERVICE WORK का एक CHILD है, इसलिए एक उत्परिवर्तन से क्लोन होता है। पढ़ने वाले हैंडलर के बगल में यह एक लिखने पर विचार करना स्वीकार करता है और अभी भी गेट में दिख रहा है समीक्षा ServiceJobRightsGateTest एक दृष्टिकोण के साथ सभी बारह हैंडलर ड्राइव करता है सत्र और दावा करता है कि सेवा कभी नहीं पहुंची - एक हैंडलर जो कार्य करता है और काम करता है। फिर चेक रिटर्न 403 पहले से ही पंक्ति लिखा है। दोनों ids प्रत्येक बच्चे के समापन बिंदु पर सेवा तक पहुंचते हैं, और सेवा हल नौकरी के साथ बच्चे uid और org एक क्वेरी में भविष्यवाणी के रूप में। बिना माता-पिता एक, DELETE /{jobUid}/line/{lineUid} org में किसी भी लाइन तक पहुंचता है यूआरएल के माध्यम से जो पूरी तरह से सही दिखता है। एक नोट का लेखक MemberId (req) है और कभी भी शरीर नहीं है: NoteInput एक शरीर है और कुछ नहीं, रिकॉर्ड पर कोई संपादन पथ ठीक नहीं है ताकि यह क्या कहता है क्या कहा गया था? एक यात्रा से बाहर क्लॉक करने के लिए कोई भी घड़ी में एक 409 यात्रा के राज्य का नामकरण है, 400 नहीं और 500 नहीं - अनुरोध अच्छी तरह से बनाया गया है और पंक्ति मौजूद है, और क्या गलत है? उसी विक्रेता को दो बार जोड़ना भी 409 है। परीक्षण अब नियंत्रक से मैप्ड हैंडलर नामों को पढ़ता है और इस बात पर जोर देता है वर्ग उनमें से हर एक को ड्राइव करता है, इसलिए एक नौवां समापन बिंदु जोड़ा गया और यहां भूल गया कुछ भी नहीं होने के बजाय विफल रहता है। क्रिया-सेट के दावे को चौड़ा किया जाता है सभी पांच क्रियाओं के लिए: इस सतह के लिए अगला प्रॉक्सी को GET, POST, PUT, निर्यात करना चाहिए। PATCH और DELETE (PATCH) या हर किसी ने उत्तर 405 से बचा लिया। सर्वर लॉग। Mutation-tested, 19 उत्परिवर्तन, प्रत्येक एक विशिष्ट नामित विफलता: सही जांच प्रत्येक आठ में से प्रत्येक पर हटा दिया गया, प्रत्येक आठ में से प्रत्येक पर देखने के लिए प्रबंधक ने स्वैप किया, प्रत्येक आठ में से एक पर चेक सर्विस कॉल के बाद ले जाया गया, सत्र org एक साक्षर के साथ बदल दिया, और एक शब्द बदल गया।.

तुम्हारा ब्रह्मांड इंतजार कर रहा है.

मिनटों में मुफ्त शुरू करें. जब भी आप तैयार हों तो उत्पाद जोड़ें - कोई माइग्रेशन नहीं, कोई नया लॉगइन नहीं.

हमेशा के लिए मुफ्त - कोई क्रेडिट कार्ड की आवश्यकता नहीं