_service = 'lms'; $this->_module = 'articles'; $this->_viewname = 'articles'; $this->_title = 'Article'; $this->_base_url = '/article'; } public function list(Request $request) { $lessons_id = $request->session()->get('lessons_id'); if ($lessons_id === 0) { return redirect('/article')->withError('Article not found!'); } $response = LambdaRequest::signedrequest('get', $this->_service, $this->_module . '/get_all', ['lessons_id' => $lessons_id]); // $lesson_id = $request->session()->remove('lessons_id'); //echo '
'; print_r($response); exit;
        $fields = $this->get_list_fields();
        return $this->view('list')->with([
            'title' => $this->_title,
            'fields' => $fields,
            'base_url' => $this->_base_url,
            'items' => $response->data->items,
            'buttons' => $this->get_list_buttons()
        ]);
    }

    protected function get_list_fields()
    {
        return [
            'actions' => ['title' => 'Actions', 'buttons' => ['edit', 'delete']],
            'type' => ['title' => 'Type', 'type' => 'text'],
            'lessons_id' => ['title' => 'Lesson', 'type' => 'text'],
            'status' => ['title' => 'Status', 'type' => 'select']
        ];
    }

    protected function get_form_fields($type, $values)
    {
        $article_bank = $this->getlambda('get', 'lms', 'articles_bank', 'get_all');

        $article_bank_quiz = [];
        foreach ($article_bank->data->items as $row) {
            $article_bank_quiz[$row->id] = $row->title;
        }

        $quiz = $this->getlambda('get', 'lms', 'lmsquiz', 'get_all');
        foreach ($quiz->data->items as $row) {
            $article_bank_quiz[$row->id] = $row->title;
        }
        // return $article_bank_quiz;
        return [
            'type' => ['title' => 'Type', 'type' => 'select', 'required' => true, 'values' => ['article' => 'Article', 'quiz' => 'Quiz']],
            'entity_id' => ['title' => 'Select Form', 'type' => 'select', 'required' => true, 'values' => $article_bank_quiz],
            'lessons_id' => ['title' => '', 'type' => 'hidden', 'required' => true, 'values' => ''],
            'sort_order' => ['title' => 'Sequence Of Article', 'required' => true, 'type' => 'text'],
            'status' => ['title' => 'Status', 'type' => 'select', 'required' => true, 'values' => ['active' => 'Active', 'disabled' => 'Disabled']],
            'icon' => ['title' => 'Icon', 'type' => 'file', 'required' => true]
        ];
    }

    public function save($type, $request ) {
    	if($type == 'edit') {
    		$url = '/update';
    	} else {
    		$url = '/create';
    	}
        $data = $this->_beforesave($type, $request);
        // echo '
'; print_r($data); exit;
    	$response = LambdaRequest::signedrequest('post', $this->_service, $this->_module.$url, $data);
        // echo '
'; print_r($response); exit;
    	if($response->statusCode == 200 && $response->status == "success") {
            // echo '
'; print_r($response); exit;
    		//return redirect($this->_base_url.'/edit?id='.$response->data->item->id)->withMessage('Successfully Saved !!!');
            return redirect($this->_base_url.'s')->withMessage('Successfully Saved !!!');
    	} else {
            return redirect($this->_base_url.'s')->withError('Some Error occured! '. $response->body->message);
    		//return \Redirect::back()->withMessage('Some Error occured!');
    	}
    }

    protected function _beforesave($type, $request)
    {
        $data = $request->except('_token');
        if ($request->file('icon')) {
            $data['icon'] = $this->_uploadMedia($request, 'icon', 'lms_cources');
        }

        $lessons_id = $request->session()->get('lessons_id');
        $data['lessons_id'] = $lessons_id;
        $data['course_id'] = $request->session()->get('course_id');
        return $data;
    }
}