
כל ליד ששולחים בקישור הזה https://api.hackeru.co.il/v1/lead ב-POST REQUEST עם הפרמטרים רלוונטים מגיע לנתב משלו שנמצא בקובץ web.php בתיקיה routes.

בקובץ LeadController.php בהתחלה עוד לפני שליד נשלח ל-CRM יש לנו כמה בדיקות שהמערכת עושה.

Validator::leadRequest($this, $request) בודק אם יש שדות חובה.

Validator::phoneValidation($request->mobilephone) בודק אם מספר טלפון ישראלי.

Validator::phoneInBlackList($request->mobilephone) ו- Validator::phoneInWhiteList($request->mobilephone) בודקים אם מספר טלפון נמצא ברשימה שחורה או לבנה.

Validator::prevent_doubles($request->mobilephone) בודק אם המספר טלפון קיים בתווח של 10 דקות, אם כן הקוד לא ממשיך. זה נעשה כדי שלא יוכלו לשלוח ליד כמה פעמים בזמן קצר עם אותו מספר טלפון.

Author::checkAuthorToken($request) בודק אם ה-SP ו-SECRET תואמים לרשומה שקיימת במערכת. * רק ה-SP שנמצאים במערכת יכולים להתקבל ב-API.

אחרי הבדיקות אם הכל תקין כל הפרמטרים ששלחו עוברים ל-Lead::create($request,$author->id) כדי לשמור את הליד במערכת API.

*ב Lead:create קיים פילטור למספר טלפון ישראלי

אחרי שנוצר ליד בהצלחה ה-data עוברת לקולבוקס ו-CRM. ה-CRM זו מערכת נפרדת של dynamics 360 microsoft.

בשרת הזה http://3.127.207.196 יושב Web Services שאחראי על עברת נתונים מ-API ל-CRM זה עוד שרת ביניים כזה כדי ששתי מערכות ידעו לדברת בינייהם. השרת של CRM מחזיר תשובה אם הליד התקבל במערכת שלו או לא. אם לא, אז ה-API יודע לשלוח מייל לאדמין על הליד שלא יתקבל וגם במערכת של API קיים אזור שדרכו ניתן לשלוח שוב את הליד שלא נשלח.
אם ה-CRM יחזיר תשובה חיובית מתעדכן סטטוס "updateCrmStatus" ב-API ככה אנחנו יודעים לעקוב אחרי לידים במערכת ולדעת מה נשלח ומה לא.
אחרי תשובה חיובית גם נשלח מייל לכתובת info@hackeru.co.il על זה שליד נכנס, ונלשחת הודעת SMS לגולש (Lead::sendSMS).

ניתן גם לראות בקוד שאחרי כל שלב יש בדיקה אם משהו לא טוב, ככה נדע לזהות איזשהו תקלה עם יהיה.
בסופו של דבר השרת מחזיר תשובה עם שגיא במידה ומשהו לא נשלח תקין
אם הכל תקין שרת מחזיר סטטוס 200.