mirror of
https://gitlab.com/CIEFWorldwideSdnBhd/exchange-2.0.git
synced 2026-08-19 04:23:55 +00:00
update profile backend
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
<?php
|
||||
|
||||
namespace App\Classes\Modules\Companies\ControllersLogic;
|
||||
|
||||
|
||||
use App\Classes\General\Abstracts\AbstractControllerLogic;
|
||||
use App\Classes\ValueObjects\Constants\BusinessType;
|
||||
use App\Http\Resources\BusinessTypeResource;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class ListBusinessTypesLogic extends AbstractControllerLogic
|
||||
{
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
protected function notification():array {
|
||||
return [
|
||||
'title' => 'Retrieved Business Types',
|
||||
'message' => 'You have successfully retrieved a list of Business Types'
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param Request $request
|
||||
* @return JsonResponse
|
||||
* @throws \App\Classes\Exceptions\AccessForbiddenException
|
||||
* @throws \App\Classes\Exceptions\MalformedRequestException
|
||||
* @throws \App\Classes\Exceptions\RequestValidationException
|
||||
*/
|
||||
public function logic(Request $request) : JsonResponse
|
||||
{
|
||||
$businessTypes = [];
|
||||
|
||||
foreach(BusinessType::BUSINESS_TYPE_LIST as $key => $val) {
|
||||
$type = (object)["id" => $key, "type" => $val];
|
||||
array_push($businessTypes, $type);
|
||||
}
|
||||
|
||||
return $this->collectionResponse(BusinessTypeResource::collection($businessTypes));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,65 @@
|
||||
<?php
|
||||
|
||||
namespace App\Classes\Modules\Companies\ControllersLogic;
|
||||
|
||||
use App\Http\Resources\CompanyResource;
|
||||
use App\Classes\General\Abstracts\AbstractControllerLogic;
|
||||
use App\Classes\Modules\Companies\DataTransferObjects\CompanyProfileObject;
|
||||
use App\Classes\Modules\Companies\Services\FetchesCompany;
|
||||
use App\Classes\Modules\Companies\Services\UpdatesCompanyProfile;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class UpdateCompanyProfileLogic extends AbstractControllerLogic
|
||||
{
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
protected function notification():array {
|
||||
return [
|
||||
'title' => 'Update Company Account Profile',
|
||||
'message' => 'You have successfully updated the Company Account Profile'
|
||||
];
|
||||
}
|
||||
|
||||
/** @var FetchesCompany */
|
||||
private $fetchesCompany;
|
||||
|
||||
/** @var UpdatesCompanyProfile */
|
||||
private $updatesCompanyProfile;
|
||||
|
||||
/**
|
||||
* UpdateCompanyProfileLogic constructor.
|
||||
* @param FetchesCompany $fetchesCompany
|
||||
* @param UpdatesCompanyProfile $updatesCompanyProfile
|
||||
*/
|
||||
public function __construct(
|
||||
FetchesCompany $fetchesCompany,
|
||||
UpdatesCompanyProfile $updatesCompanyProfile
|
||||
)
|
||||
{
|
||||
$this->fetchesCompany = $fetchesCompany;
|
||||
$this->updatesCompanyProfile = $updatesCompanyProfile;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Request $request
|
||||
* @return JsonResponse
|
||||
* @throws \App\Classes\Exceptions\AccessForbiddenException
|
||||
* @throws \App\Classes\Exceptions\MalformedRequestException
|
||||
* @throws \App\Classes\Exceptions\RequestValidationException
|
||||
*/
|
||||
public function logic(Request $request) : JsonResponse
|
||||
{
|
||||
$object = new CompanyProfileObject($request->input('email'), $request->input('phone'), $request->input('business_type'));
|
||||
|
||||
$company = $this->fetchesCompany->execute(['id' => $request->route('id')]);
|
||||
|
||||
$company_query = $this->updatesCompanyProfile->execute($company, $object);
|
||||
|
||||
return $this->resourceResponse(new CompanyResource($company_query));
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,55 @@
|
||||
<?php
|
||||
|
||||
namespace App\Classes\Modules\Companies\DataTransferObjects;
|
||||
|
||||
use App\Classes\General\Interfaces\DataTransferObject;
|
||||
use App\Classes\ValueObjects\Constants\BusinessType;
|
||||
|
||||
class CompanyProfileObject implements DataTransferObject
|
||||
{
|
||||
/** @var string */
|
||||
private $email;
|
||||
|
||||
/** @var string */
|
||||
private $phone;
|
||||
|
||||
/** @var int|null */
|
||||
private $businessType;
|
||||
|
||||
/**
|
||||
* CompanyObject constructor.
|
||||
* @param string $email
|
||||
* @param string $phone
|
||||
* @param int|null $businessType
|
||||
*/
|
||||
public function __construct(string $email, string $phone, ?int $businessType = BusinessType::IMPORTER)
|
||||
{
|
||||
$this->email = $email;
|
||||
$this->phone = $phone;
|
||||
$this->businessType = $businessType;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getEmail(): string
|
||||
{
|
||||
return $this->email;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getPhone(): string
|
||||
{
|
||||
return $this->phone;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
public function getBusinessType(): int
|
||||
{
|
||||
return $this->businessType;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
namespace App\Classes\Modules\Companies\Services;
|
||||
|
||||
use App\Classes\General\Eloquent\AbstractUpdateRecord;
|
||||
use App\Classes\Modules\Companies\DataTransferObjects\CompanyProfileObject;
|
||||
use App\Models\Company;
|
||||
|
||||
class UpdatesCompanyProfile extends AbstractUpdateRecord
|
||||
{
|
||||
|
||||
/**
|
||||
* @param Company $model
|
||||
* @param CompanyProfileObject $object
|
||||
* @return \Illuminate\Database\Eloquent\Model
|
||||
* @throws \App\Classes\Exceptions\MalformedRequestException
|
||||
*/
|
||||
public function execute(Company $model, CompanyProfileObject $object)
|
||||
{
|
||||
$model->business_type = $object->getBusinessType();
|
||||
|
||||
if ($model->contacts) {
|
||||
$contact = $model->contacts()->first();
|
||||
$contact->email = $object->getEmail();
|
||||
$contact->phone = $object->getPhone();
|
||||
$contact->save();
|
||||
}
|
||||
|
||||
return $this->handler($model);
|
||||
|
||||
}
|
||||
}
|
||||
@@ -13,10 +13,10 @@ final class BusinessType {
|
||||
public const TRANSFER_AGENT = 4;
|
||||
|
||||
public const BUSINESS_TYPE_LIST = [
|
||||
self::FREIGHT_FORWARDER => 'FREIGHT_FORWARDER',
|
||||
self::IMPORTER => 'IMPORTER',
|
||||
self::CURRENCY_VENDOR => 'CURRENCY_VENDOR',
|
||||
self::TRANSFER_AGENT => 'TRANSFER_AGENT',
|
||||
self::FREIGHT_FORWARDER => 'Freight Forwarder',
|
||||
self::IMPORTER => 'Importer',
|
||||
self::CURRENCY_VENDOR => 'Currency Vendor',
|
||||
self::TRANSFER_AGENT => 'Transfer Agent',
|
||||
];
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Companies;
|
||||
|
||||
use App\Classes\Modules\Companies\ControllersLogic\ListBusinessTypesLogic;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class ListBusinessTypesController
|
||||
{
|
||||
/**
|
||||
* @param Request $request
|
||||
* @param ListBusinessTypesLogic $logic
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function list(Request $request, ListBusinessTypesLogic $logic): JsonResponse {
|
||||
return $logic->execute($request);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Companies;
|
||||
|
||||
use App\Classes\Modules\Companies\ControllersLogic\UpdateCompanyProfileLogic;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class UpdateCompanyProfileController
|
||||
{
|
||||
/**
|
||||
* @param Request $request
|
||||
* @param UpdateCompanyProfileLogic $logic
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function update(Request $request, UpdateCompanyProfileLogic $logic): JsonResponse {
|
||||
dd("controller called");
|
||||
return $logic->execute($request);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Resources;
|
||||
|
||||
use Illuminate\Http\Resources\Json\JsonResource;
|
||||
|
||||
class BusinessTypeResource extends JsonResource
|
||||
{
|
||||
/**
|
||||
* Transform the resource into an array.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return array
|
||||
*/
|
||||
public function toArray($request)
|
||||
{
|
||||
return [
|
||||
'id' => $this->id,
|
||||
'type' => $this->type,
|
||||
];
|
||||
}
|
||||
}
|
||||
+4
-17
@@ -10,9 +10,9 @@
|
||||
</div>
|
||||
<div class="row m-b-10">
|
||||
<div class="col">
|
||||
<validation-wrapper-component :validator="$v.parameters.business_type">
|
||||
<validation-wrapper-component selectable :validator="$v.parameters.business_type">
|
||||
<label>Business Type</label>
|
||||
<input type="text" class="form-control" v-model="parameters.business_type">
|
||||
<selectable-component :endpoint="route('api.company.business_type.list')" section="businessTypeListSection" valueColumn="id" :labelColumn="['type']" v-model="parameters.business_type"></selectable-component>
|
||||
</validation-wrapper-component>
|
||||
</div>
|
||||
</div>
|
||||
@@ -24,14 +24,6 @@
|
||||
</validation-wrapper-component>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row m-b-10">
|
||||
<div class="col">
|
||||
<validation-wrapper-component :validator="$v.parameters.contact_email">
|
||||
<label>Contact Email</label>
|
||||
<input type="text" class="form-control" v-model="parameters.contact_email">
|
||||
</validation-wrapper-component>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row m-b-10">
|
||||
<div class="col">
|
||||
<validation-wrapper-component :validator="$v.parameters.phone">
|
||||
@@ -66,8 +58,7 @@
|
||||
created() {
|
||||
if(this.data){
|
||||
this.parameters.business_type = this.data.business_type;
|
||||
this.parameters.email = this.data.employee ? this.data.employee.email : "";
|
||||
this.parameters.contact_email = this.data.contact ? this.data.contact.email : "";
|
||||
this.parameters.email = this.data.contact ? this.data.contact.email : "";
|
||||
this.parameters.phone = this.data.contact ? this.data.contact.phone : "";
|
||||
}
|
||||
},
|
||||
@@ -76,7 +67,6 @@
|
||||
parameters: {
|
||||
business_type: "",
|
||||
email: "",
|
||||
contact_email: "",
|
||||
phone: "",
|
||||
}
|
||||
}
|
||||
@@ -89,9 +79,6 @@
|
||||
email: {
|
||||
required,
|
||||
},
|
||||
contact_email: {
|
||||
required,
|
||||
},
|
||||
phone: {
|
||||
required,
|
||||
},
|
||||
@@ -99,7 +86,7 @@
|
||||
},
|
||||
methods: {
|
||||
submitForm(){
|
||||
this.submit(route('api.company.update', this.data.id), 'put', '', false, false);
|
||||
this.submit(route('api.company.profile.update', this.data.id), 'put', '', false, false);
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
@@ -7,10 +7,13 @@ Route::group(['prefix' => 'company', 'as' => 'company.', 'namespace' => 'Compani
|
||||
Route::get('/list', 'ListCompaniesController@list')->name('list');
|
||||
Route::post('/create', 'CreateCompanyController@create')->name('create');
|
||||
Route::put('/update/{id}', 'UpdateCompanyController@update')->name('update');
|
||||
Route::put('/update/{id}/profile', 'UpdateCompanyProfileController@update')->name('profile.update');
|
||||
Route::put('update/{id}/status', 'UpdateCompanyStatusController@update')->name('status.update');
|
||||
Route::delete('/delete/{id}', 'DeleteCompanyController@destroy')->name('delete');
|
||||
Route::put('/name-and-debtor/update/{id}', 'UpdateCompanyNameAndDebtorController@update')->name('update.nameAndDebtor');
|
||||
|
||||
Route::get('/business_type/list', 'ListBusinessTypesController@list')->name('business_type.list');
|
||||
|
||||
Route::put('/update/debtor/{id}', 'UpdateCompanyDebtorController@update')->name('delete');
|
||||
|
||||
Route::post('/team/create', 'AddNewMemberController@create')->name('team.create');
|
||||
|
||||
Reference in New Issue
Block a user