obsidian/MyObsidianVault/WebDev/2 CodeIgniter/24.) Delete Project API.md
2024-11-30 10:25:38 +01:00

1.8 KiB

https://www.youtube.com/watch?v=B5GafCSXj9U&list=PLT9miexWCpPW6Z_OXNv2d78cqCrZaPrVG&index=37

ProjectController.php

public function deleteProject($project_id)
 {
	 $user_id = auth()->id();
	 if(!empty($project_id)) {
		 $pm = new ProjectModel();
		 $projectData = $pm->where([
			 "user_id" => $user_id,
			 "id" => $project_id
		 ])->first();

		if (!empty($projectData)) {
			if(pm->delete($project_id)) {
				$response = [
					"status" => true,
					"message" => "project deleted",
					"data" => []
				];
			}else {
					$response = [
					"status" => false,
					"message" => "failed to delete project",
					"data" => []
				];
			}
		}else{
			$response = [
				"status" => false,
				"message" => "project not found",
				"data" => []
			];
		}
		 
	 }else{
		 $response = [ 
			 "status" => false,
			 "message" => "Project Id required",
			 "data" => []
		 ];
	 }

	return $this->respondCreated($response);
 }

Routes.php

$routes->delete("delete-project/(:num)", "ProjectController::deleteProject/$1",["filter"=>"apiauth"]);

Alternative version:

public function deleteProject($project_id)
 {
	$user_id = auth()->id();

	if(empty($project_id)) {
		return $this->respondCreated([ 
			 "status" => false,
			 "message" => "project id required",
			 "data" => []
		 ]);
	}

	$pm = new ProjectModel();
	$projectData = $pm->where([
		"user_id" => $user_id,
		"id" => $project_id
		])->first();

	if(empty($projectData)) {
		return $this->respondCreated([
				"status" => false,
				"message" => "project not found",
				"data" => []
			]);
	}

	if(!$pm->delete($project_id)) {
		return $this->respondCreated([
					"status" => false,
					"message" => "failed to delete project",
					"data" => []
				]);
	}

	return $this->respondCreated([
					"status" => true,
					"message" => "project deleted",
					"data" => []
				]);
 }