updated controller for api contacts

This commit is contained in:
mrNikto9 2024-07-17 20:29:05 +05:00
parent bef7e45f75
commit 96449c2fe3
1 changed files with 51 additions and 13 deletions

View File

@ -39,26 +39,64 @@ class contactController extends Controller
} }
public function store(Request $request){ // public function store(Request $request){
// $arr = $request->all();
// while ( $data = current($arr)) {
// $this->Contacts->{key($arr)} = $data;
// next($arr);
// }
// $validation = Validator::make($request->all(), $this->Contacts->rules);
// if( $validation->passes() ){
// $this->Contacts->save();
// return $this->helpers->apiArrayResponseBuilder(201, 'created', ['id' => $this->Contacts->id]);
// }else{
// return $this->helpers->apiArrayResponseBuilder(400, 'fail', $validation->errors() );
// }
// }
public function store(Request $request)
{
$arr = $request->all(); $arr = $request->all();
// dd($arr);
while ( $data = current($arr)) { // Assign request data to the Contacts model
$this->Contacts->{key($arr)} = $data; foreach ($arr as $key => $value) {
next($arr); if ($key != 'file') {
$this->Contacts->{$key} = $value;
}
} }
// Validate the request data against the model's rules
$validation = Validator::make($request->all(), $this->Contacts->rules); $validation = Validator::make($request->all(), $this->Contacts->rules);
if( $validation->passes() ){ if ($validation->fails()) {
$this->Contacts->save();
return $this->helpers->apiArrayResponseBuilder(201, 'created', ['id' => $this->Contacts->id]);
}else{
return $this->helpers->apiArrayResponseBuilder(400, 'fail', $validation->errors()); return $this->helpers->apiArrayResponseBuilder(400, 'fail', $validation->errors());
} }
// Save the Contacts model
$this->Contacts->save();
// Handle file upload and attachment
if ($request->hasFile('file')) {
$file = $request->file('file');
$uploadedFile = new \System\Models\File;
$uploadedFile->data = $file;
$uploadedFile->save();
// Attach the file to the Contacts model using attachOne
$this->Contacts->file()->add($uploadedFile);
} }
return $this->helpers->apiArrayResponseBuilder(201, 'created', ['id' => $this->Contacts->id]);
}
public function update($id, Request $request){ public function update($id, Request $request){
$status = $this->Contacts->where('id',$id)->update($data); $status = $this->Contacts->where('id',$id)->update($data);