Add method to cancel warranty in WarrantyController. Add route and acl for cancel warranty. Add test command to test cancel warranty. #250

This commit is contained in:
Korina Cordero 2019-08-15 08:25:34 +00:00
parent 74e1e329a7
commit e634f2ee32
4 changed files with 33 additions and 0 deletions

View file

@ -73,6 +73,10 @@ class TestAPICommand extends Command
];
$api->post('/capi/warranties/' . $id . '/claim', $params);
// warranty cancel
$id = 86811;
$api->get('/capi/warranties/' . $id . '/cancel');
// plate warranty
$api->get('/capi/plates/' . $plate_num . '/warranties');

View file

@ -12,6 +12,8 @@ access_keys:
label: Register Battery
- id: warranty.claim
label: Claim
- id: warranty.cancel
label: Cancel
- id: batterybrand
label: Battery Brand Access
acls:

View file

@ -84,6 +84,12 @@ capi_warranty_get_all:
controller: App\Controller\CAPI\WarrantyController::getAll
methods: [GET]
# cancel warranty
capi_warranty_cancel:
path: /capi/warranties/{id}/cancel
controller: App\Controller\CAPI\WarrantyController::cancel
methods: [GET]
# customer vehicle api

View file

@ -310,4 +310,25 @@ class WarrantyController extends APIController
return new APIResponse(true, 'Warranties loaded.', $data);
}
public function cancel(Request $req, EntityManagerInterface $em, $id)
{
$this->denyAccessUnlessGranted('warranty.cancel', null, 'No access.');
// find warranty
$warr = $em->getRepository(Warranty::class)->find($id);
if ($warr == null)
{
return new APIResponse(false, 'No warranty found with that id.', null, 404);
}
// set status to cancelled
$warr->setStatus(WarrantyStatus::CANCELLED);
$em->persist($warr);
$em->flush();
return new APIResponse(true, 'Warranty cancelled successfully.');
}
}