Level 122
Please format your code by putting 3 backticks ``` on a line before and after each code block
1 like
MODEL:
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Validator;
class CourseDiscoveryClass extends Model
{
public $timestamps = false;
private $table = 'course_discoveryLumen';
public function create_course($user_id,$category_id,$course_id,$course_title,$course_content)
{
$data = [
'user_id'=>$user_id,
'category_id'=>$category_id,
'course_id'=>$course_id,
'course_title'=>$course_title,
'course_content'=>$course_content,
];
$rules = [
'user_id'=>'required',
'category_id'=>'required',
'course_id'=>'required',
'course_title'=>'required|max:255',
'course_content'=>'required|'
];
$validator = Validator::make($data, $rules);
if($validator->fails())
{
throw new Exception('Invalid request.');
}
$course = new CourseDiscoveryClass();
$course->user_id = $data['user_id'];
$course->category_id = $data['category_id'];
$course->course_id = $data['course_id'];
$course->course_title = $data['course_title'];
$course->course_content = $data['course_content'];
$course->save();
return true;
}
public function update_course($course_id,$category_id,$course_title,$course_content)
{
$data = [
'category_id'=>$category_id,
'course_id'=>$course_id,
'course_title'=>$course_title,
'course_content'=>$course_content,
];
$rules = [
'category_id'=>'required|numeric',
'course_id'=>'required|numeric',
'course_title'=>'required|max:255',
'course_content'=>'required'
];
$validator = Validator::make($data,$rules);
if($validator->fails())
{
throw new Exception('Invalid update course');
}
$course = $this->find($course_id,$category_id);
$course->course_title = $data['course_title'];
$course->course_content = $data['course_content'];
$this->save();
return true;
}
// public function delete_course($id)
// {
// $data = [
// 'id'=>$id
// ];
// $rules = [
// 'id'=>'required|numeric'
// ];
// $validator = Validator::make($data,$rules);
// if($validator->fails())
// {
// throw new Exception('Invalid request');
// }
// $course = $this->first($id);
// return $course;
// }
// public function list_courses()
// {
// $courses = $this->get();
// return $courses;
// }
}
CONTROLLER:
```<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\CourseDiscoveryClass;
use Exception;
class CourseDiscoveryController extends Controller
{
private $course_discovery;
public function __construct()
{
$this->course_discovery = new CourseDiscoveryClass();
}
public function create_course(Request $r)
{
try{
// $course_title = $r->input('course_title');
// $course_content = $r->input('course_content');
// $course_title = $r->get('id');
// $course_content = $r->get('id')
// $this->course_discovery->create_course($course_title,$course_content);
$user_id = $r['user_id'];
$category_id = $r['category_id'];
$course_id = $r['course_id'];
$course_title = $r['course_title'];
$course_content = $r['course_content'];
$this->course_discovery->create_course($user_id,$category_id,$course_id,$course_title,$course_content);
return response()->json([
'status_code'=>200,
'status_message'=>'Course Created Successfully',
],200);
}
catch(Exception $e)
{
return response()->json([
'status_code'=>400,
'status_message'=>$e->getMessage();
],400);
}
}
public function update_course(Request $r)
{
$id = $r->get('id');
$course_title = $r->get('id');
$course_content = $r->get('id');
$this->course_discovery->update_course($id,$course_title,$course_content);
return response()->json([
'status_code'=>200,
'status_message'=>'Course Updated Successfully',
],200);
}
catch(Exception $e)
{
return response()->json([
'status_code'=>400,
'status_message'=>$e->getMessage();
],400);
}
public function delete_course(Request $r)
{
try{
$id = $r->get('id');
$this->course_discovery->delete_course($id);
return response()->json([
'status_code'=>200,
'status_message'=>'Course Deleted Successfully',
],200);
}
catch(Exception $e)
{
return response()->json([
'status_code'=>400,
'status_message'=>$e->getMessage();
],400);
}
}
public function get_course(Request $r)
{
try{
$id = $r->get('id');
$course = $this->course_discovery->get_course($id);
return response()->json([
'status_code'=>200,
'status_message'=>'Success',
'result'=>$course
],200);
}
catch(Exception $e)
{
return response()->json([
'status_code'=>400,
'status_message'=>$e->getMessage();
],400);
}
}
public function list_courses(Request $r)
{
try{
$courses = $this->course_discovery->list_courses();
return response()->json([
'status_code'=>200,
'status_message'=>'Courses listed Successfully',
'result'=>$courses
],200);
}
catch(Exception $e)
{
return response()->json([
'status_code'=>400,
'status_message'=>$e->getMessage();
],400);
}
}
}
WEB:
```<?php
/*
|--------------------------------------------------------------------------
| Application Routes
|--------------------------------------------------------------------------
|
| Here is where you can register all of the routes for an application.
| It is a breeze. Simply tell Lumen the URIs it should respond to
| and give it the Closure to call when that URI is requested.
|
*/
$router->get('/', function () use ($router) {
return $router->app->version();
});
$router->get('api/list','CourseDiscoveryController@list_courses');
$router->get('api/get/{id}','CourseDiscoveryController@get_course');
$router->post('api/create','CourseDiscoveryController@create_course');
$router->put('api/update/{id}','CourseDiscoveryController@update_course');
$router->delete('api/delete/{id}','CourseDiscoveryController@delete_course');
Please or to participate in this conversation.