Merge branch 'Cleaned-BackEnd-Contact' into 'master'

Cleaned back end contact

See merge request CIEFWorldwideSdnBhd/izyim!24
This commit is contained in:
omair saleh
2019-05-21 08:51:18 +00:00
16 changed files with 110 additions and 157 deletions
@@ -1,24 +0,0 @@
<?php
namespace App\Classes\ControllersLogic\Contacts;
use App\Models\Contact;
use App\Http\Resources\Contact as ContactResource;
class DeleteContact
{
public function execute(string $id) {
// Get address
$contact= Contact::findOrFail($id);
if($contact->delete()){
// Return single address as a resource
return new ContactResource($contact);
}
}
}
@@ -1,19 +0,0 @@
<?php
namespace App\Classes\ControllersLogic\Contacts;
use App\Models\Contact;
use App\Http\Resources\Contact as ContactResource;
class ListContacts
{
public function execute(int $type, string $reference) {
// Get contacts
$contacts = Contact::where('type', $type)->where('reference_id', $reference)->orderBy('created_at')->paginate(5);
// Return collection of contacts as a resource
return ContactResource::collection($contacts);
}
}
@@ -1,46 +0,0 @@
<?php
namespace App\Classes\ControllersLogic\Contacts;
use App\Models\Contact;
use App\Http\Resources\Contact as ContactResource;
use Illuminate\Http\Request;
class UpdateContact
{
/** @var Contact */
private $repository;
/**
* UpdateContact constructor.
* @param Contact $repository
*/
public function __construct(Contact $repository)
{
$this->repository = $repository;
}
public function execute(Request $request, int $type, string $reference) {
$contact = $this->repository->findOrFail($id);
$contact->type = $type;
$contact->reference_id = $reference;
$contact->name = $request->input('name');
$contact->designation = $request->input('designation');
$contact->contact = $request->input('contact');
$contact->email = $request->input('email');
$contact = $request->method() === 'PUT' ? Contact::findOrFail($request->input('id')) : new Contact;
if($contact->save()){
return new ContactResource($contact);
}
}
}
@@ -1,6 +1,6 @@
<?php
namespace App\Modules\Contacts\DataTransferObjects;
namespace App\Classes\Modules\Contacts\DataTransferObjects;
class ContactObject
{
@@ -0,0 +1,42 @@
<?php
/**
* Created by PhpStorm.
* User: user
* Date: 09/05/2019
* Time: 11:51 AM
*/
namespace App\Classes\Modules\Contacts\Services;
use App\Models\Contact;
use App\Http\Resources\Contact as ContactResource;
class DeletesContact
{
/** @var Contact */
private $repository;
/**
* DeletesContact constructor.
* @param Contact $repository
*/
public function __construct(Contact $repository)
{
$this->repository = $repository;
}
public function execute(String $id){
$contact = $this->repository->findOrFail($id);
if($contact->delete()){
// Return single address as a resource
return new ContactResource($contact);
}
}
}
@@ -30,7 +30,7 @@ class ListsContact
public function execute(int $type, int $referenceId){
$contacts = $this->repository->where('type', $type)
->where('reference_id', $referenceId)->get();
->where('reference_id', $referenceId)->orderBy('created_at')->paginate(5);
// Return collection of contacts as a resource
return ContactResource::collection($contacts);
@@ -27,7 +27,7 @@ class CreateContactLogic
{
try{
$object = new ContactObject($request->input('name'), $request->input('designation'), $request->input('contact'), $request->input('email'));
$object = new ContactObject($type, $referenceId, $request->input('name'), $request->input('designation'), $request->input('contact'), $request->input('email'));
return $this->createContact->execute($object, $type, $referenceId);
}
@@ -0,0 +1,35 @@
<?php
/**
* Created by PhpStorm.
* User: user
* Date: 09/05/2019
* Time: 11:51 AM
*/
namespace App\Modules\ControllerLogic\Contacts;
use App\Classes\Modules\Contacts\Services\DeletesContact;
class DeleteContactLogic
{
/** @var DeletesContact */
private $DeletesContact;
/**
* DeleteContactLogic constructor.
* @param DeletesContact $DeletesContact
*/
public function __construct(DeletesContact $DeletesContact)
{
$this->DeletesContact = $DeletesContact;
}
public function execute(String $id){
return $this->DeletesContact->execute($id);
}
}
@@ -28,10 +28,9 @@ class UpdateContactLogic
}
public function execute(int $id, Request $request)
public function execute(int $id, string $referenceId, int $type, Request $request)
{
$object = new ContactObject($request->input('name'), $request->input('designation'), $request->input('contact'), $request->input('email'));
$object = new ContactObject($type, $referenceId, $request->input('name'), $request->input('designation'), $request->input('contact'), $request->input('email'));
return $this->updateContact->execute($id, $object);
}
}
@@ -1,53 +0,0 @@
<?php
namespace App\Http\Controllers\Contacts;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Http\Resources\Contact as ContactResource;
use App\Classes\Constants;
use App\Classes\ControllersLogic\Contacts\ListContacts;
use App\Classes\ControllersLogic\Contacts\UpdateContact;
use App\Classes\ControllersLogic\Contacts\DeleteContact;
class ContactController extends Controller
{
/**
* Display a listing of the resource.
* @param string $type
* @param string $reference
* @return \Illuminate\Http\Resources\Json\AnonymousResourceCollection
*/
public function index(string $type, string $reference) {
return (new ListContacts())->execute(Constants::MODULE_TYPES[$type], $reference);
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param string $type
* @param string $reference
* @return ContactResource
*/
public function store(Request $request, string $type, string $reference)
{
return (new UpdateContact())->execute($request, Constants::MODULE_TYPES[$type], $reference);
}
/**
* Remove the specified resource from storage.
*
* @param string $id
*
* @return ContactResource
*/
public function destroy(string $id): ContactResource {
return (new DeleteContact())->execute($id);
}
}
@@ -9,6 +9,7 @@ use App\Classes\Modules\ControllerLogic\Contacts\CreateContactLogic;
class CreateContactController
{
public function create(string $type, int $referencesId, Request $request, CreateContactLogic $logic){
return $logic->execute(Constants::MODULE_TYPES[$type], $referencesId, $request);
}
@@ -0,0 +1,18 @@
<?php
/**
* Created by PhpStorm.
* User: user
* Date: 09/05/2019
* Time: 11:51 AM
*/
namespace App\Http\Controllers\Contacts;
use App\Modules\ControllerLogic\Contacts\DeleteContactLogic;
class DeleteContactController
{
public function destroy(String $id, DeleteContactLogic $logic ){
return $logic->execute($id);
}
}
@@ -8,8 +8,6 @@
namespace App\Http\Controllers\Contacts;
use App\Modules\ControllerLogic\Contacts\ListContactLogic;
@@ -9,13 +9,15 @@
namespace App\Http\Controllers\Contacts;
use App\Classes\Constants;
use App\Modules\ControllerLogic\Contacts\UpdateContactLogic;
use Illuminate\Http\Request;
class UpdateContactController
{
public function update(int $id,Request $request, UpdateContactLogic $logic){
return $logic->execute($id, $request);
public function update(string $type, string $referenceId, int $id, Request $request, UpdateContactLogic $logic){
return $logic->execute($id,$referenceId, Constants::MODULE_TYPES[$type], $request);
}
}
+1 -1
View File
@@ -19,7 +19,7 @@ class Contact extends JsonResource
'id' => $this->id,
'type' => $this->type,
'reference_id' => $this->reference_id,
'name' => $this->first_name.' '. $this->last_name,
'name' => $this->name,
'designation' => $this->designation,
'contact' => $this->contact,
'email' => $this->email,
+4 -4
View File
@@ -78,16 +78,16 @@ Route::group(['middleware' => 'api', 'prefix' => 'v1', 'as' => 'api.'], function
Route::group(['prefix' => 'contact', 'as' => 'contact.', 'namespace' => 'Contacts'], function () {
// List contacts
Route::get('list/{type}/{reference}', 'ContactController@index')->name('list');
Route::get('list/{type}/{reference}', 'ListContactController@list')->name('list');
// Create new contact
Route::post('{type}/{reference}', 'ContactController@store')->name('create');
Route::post('{type}/{reference}', 'CreateContactController@create')->name('create');
// Update contact
Route::put('{type}/{reference}/{id}', 'ContactController@store')->name('update');
Route::put('{type}/{reference}/{id}', 'UpdateContactController@update')->name('update');
// Delete contact
Route::delete('{id}', 'ContactController@destroy')->name('delete');
Route::delete('{id}', 'DeleteContactController@destroy')->name('delete');
});