Following is the code. where in user is welcomed. its ID is verified and name & class is fetched from db. After class selection selected class displayed on same side rather I want it to display on right.
public function getUser(){
$user = DB::table('users')->where('uid','=',20230005210)->first();
if(!empty($user)){
$this->say("Hi " . $user->name . " ( ID:". $user->uid .")...");
$this->say("Welcome ENO!!");
$this->couSelect($user->class);
$this->couSelect($user->class);
session(['uid' => $user->uid]);
session(['class' => $user->class]);
}else{
$this->say("Sorry, Not Verified");
}
}
public function getUserData(){
$userData= new stdClass;
$this->ask("Enter ID",function(Answer $answer)use ($userData){
$this->name = $answer->getText();
$this->selectClass();
});
}
public function verifyUser($userdata){
$moodleData =Http::post("http://localhost/......=". $userdata->name)->json();
if(!empty($moodleData["users"])){
$m_username = $moodleData["users"][0]["username"];
$m_firstname = $moodleData["users"][0]["firstname"];
$m_fullname = $moodleData["users"][0]["fullname"];
$this->curr_username = $m_username;
$this->curr_userclass = $userdata->class;
$this->say("Hi.. " . $m_firstname . " (User ID:". $m_username .")...");
$this->say("Welcome!!");
$this->courseSelect( $this->curr_userclass);
session(['uid' => $this->curr_username]);
session(['class' => $this->curr_userclass]);
}else{
$this->say("Sorry, Not Verified");
}
}
public function getUserID(){
$user = DB::table('students')->where('uid','=',2022005332)->first();
return $user->id;
}
public function selectClass(){
$question = Question::create('Select Class')
->callbackId('class_select')
->addButtons([
Button::create('V')->value('V'),
Button::create('IV')->value('IV'),
Button::create('VI')->value('VI'),
]);
$this->ask($question, function(Answer $answer) {
if ($answer->isInteractiveMessageReply()) {
$this->selectedClass = $answer->getValue();
session(['class' => $this->selectedClass]);
$this->say("Class Selected: " . $this->selectedClass);
$this->checkUser();
}
});
}
public function checkUser(){
$user = DB::table('users')->where([
['uid','=',$this->name],
['class', '=', $this->selectedClass],
])->first();
if(!empty($user)){
$this->say("Hi " . $user->name . " ( ID:". $user->uid .")... Welcome !!");
$this->courseSelect($user->class);
session(['uid' => $user->uid]);
session(['class' => $user->class]);
}else{
// $this->typesAndWaits(1);
$this->say("Did Not Verified");
}
}
public function courseSelect($class){
$course = DB::table('course')->where('class','=',$class)->get();
$question = Question::create("Select Course:")->callbackId('course_select');
foreach($course as $c){
$question->addButtons([
Button::create($c->curriculum)->value($c->course_id)
]);
}
$this->ask($question, function (Answer $answer){
if ($answer->isInteractiveMessageReply()) {
$selectedCourseID = $answer->getValue();
session(['courseID' => $selectedCourseID]);
$this->selectedCourseID = $selectedCourseID;//storing the course id globally
$courseSelected = DB::table('course')->where('course_id','=',$selectedCourseID)->first();
$this->courseName = $courseSelected->curriculum;
$this->say("Course Selected: " . $this->courseName);
$this->selectChapterRange($selectedCourseID);
}
});
}
public function selectChapterRange($selectedCourseID){
$question = Question::create('Select Chapter Range')
->callbackId('chapter_range_select')
->addButtons([
Button::create('Chapter 1 - 6')->value('Chapter 1 - 6'),
Button::create('Chapter 7 - 12')->value('Chapter 7 - 12'),
]);
$this->ask($question, function(Answer $answer) {
if ($answer->isInteractiveMessageReply()) {
$this->selectedChapterRange = $answer->getValue();
// session(['class' => $this->selectedClass]);
$this->say("Selected Range: " . $this->selectedChapterRange);
// $this->checkUser();
if($this->selectedChapterRange === "Chapter 1 - 6"){
// $this->typesAndWaits(1);
$this->chapterSelect($this->selectedCourseID, 1, 6);
}elseif($this->selectedChapterRange === "Chapter 7 - 12"){
$this->chapterSelect($this->selectedCourseID, 7, 12);
}else{
}
}
});
}`
Initially the conversation looks sender and receiver.
Later it comes on one side only
Plz help.