| 
									
										
										
										
											2018-04-11 19:49:35 +02:00
										 |  |  | <?php | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | namespace Grocy\Controllers; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-08-29 12:05:32 +02:00
										 |  |  | use Grocy\Controllers\Users\User; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-04-11 19:49:35 +02:00
										 |  |  | class BatteriesApiController extends BaseApiController | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2020-08-31 20:40:31 +02:00
										 |  |  | 	public function BatteryDetails(\Psr\Http\Message\ServerRequestInterface $request, \Psr\Http\Message\ResponseInterface $response, array $args) | 
					
						
							| 
									
										
										
										
											2018-04-11 19:49:35 +02:00
										 |  |  | 	{ | 
					
						
							| 
									
										
										
										
											2020-08-31 20:40:31 +02:00
										 |  |  | 		try | 
					
						
							|  |  |  | 		{ | 
					
						
							|  |  |  | 			return $this->ApiResponse($response, $this->getBatteriesService()->GetBatteryDetails($args['batteryId'])); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 		catch (\Exception $ex) | 
					
						
							|  |  |  | 		{ | 
					
						
							|  |  |  | 			return $this->GenericErrorResponse($response, $ex->getMessage()); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	public function Current(\Psr\Http\Message\ServerRequestInterface $request, \Psr\Http\Message\ResponseInterface $response, array $args) | 
					
						
							|  |  |  | 	{ | 
					
						
							| 
									
										
										
										
											2020-09-01 19:59:40 +02:00
										 |  |  | 		return $this->FilteredApiResponse($response, $this->getBatteriesService()->GetCurrent(), $request->getQueryParams()); | 
					
						
							| 
									
										
										
										
											2018-04-11 19:49:35 +02:00
										 |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-02-11 17:42:03 +01:00
										 |  |  | 	public function TrackChargeCycle(\Psr\Http\Message\ServerRequestInterface $request, \Psr\Http\Message\ResponseInterface $response, array $args) | 
					
						
							| 
									
										
										
										
											2018-04-11 19:49:35 +02:00
										 |  |  | 	{ | 
					
						
							| 
									
										
										
										
											2020-08-29 18:31:28 +02:00
										 |  |  | 		User::checkPermission($request, User::PERMISSION_BATTERIES_TRACK_CHARGE_CYCLE); | 
					
						
							| 
									
										
										
										
											2020-08-29 12:05:32 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-10-14 22:49:29 +02:00
										 |  |  | 		$requestBody = $this->GetParsedAndFilteredRequestBody($request); | 
					
						
							| 
									
										
										
										
											2018-04-11 19:49:35 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-04-22 14:25:08 +02:00
										 |  |  | 		try | 
					
						
							|  |  |  | 		{ | 
					
						
							| 
									
										
										
										
											2019-01-19 14:51:51 +01:00
										 |  |  | 			$trackedTime = date('Y-m-d H:i:s'); | 
					
						
							| 
									
										
										
										
											2020-08-31 20:40:31 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-01-19 14:51:51 +01:00
										 |  |  | 			if (array_key_exists('tracked_time', $requestBody) && IsIsoDateTime($requestBody['tracked_time'])) | 
					
						
							|  |  |  | 			{ | 
					
						
							|  |  |  | 				$trackedTime = $requestBody['tracked_time']; | 
					
						
							|  |  |  | 			} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-03-01 23:47:47 +07:00
										 |  |  | 			$chargeCycleId = $this->getBatteriesService()->TrackChargeCycle($args['batteryId'], $trackedTime); | 
					
						
							|  |  |  | 			return $this->ApiResponse($response, $this->getDatabase()->battery_charge_cycles($chargeCycleId)); | 
					
						
							| 
									
										
										
										
											2018-04-22 14:25:08 +02:00
										 |  |  | 		} | 
					
						
							|  |  |  | 		catch (\Exception $ex) | 
					
						
							|  |  |  | 		{ | 
					
						
							| 
									
										
										
										
											2019-01-19 14:51:51 +01:00
										 |  |  | 			return $this->GenericErrorResponse($response, $ex->getMessage()); | 
					
						
							| 
									
										
										
										
											2018-04-22 14:25:08 +02:00
										 |  |  | 		} | 
					
						
							| 
									
										
										
										
											2018-08-04 15:44:58 +02:00
										 |  |  | 	} | 
					
						
							| 
									
										
										
										
											2018-10-27 10:55:30 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-02-11 17:42:03 +01:00
										 |  |  | 	public function UndoChargeCycle(\Psr\Http\Message\ServerRequestInterface $request, \Psr\Http\Message\ResponseInterface $response, array $args) | 
					
						
							| 
									
										
										
										
											2018-10-27 10:55:30 +02:00
										 |  |  | 	{ | 
					
						
							| 
									
										
										
										
											2020-08-29 18:31:28 +02:00
										 |  |  | 		User::checkPermission($request, User::PERMISSION_BATTERIES_UNDO_CHARGE_CYCLE); | 
					
						
							| 
									
										
										
										
											2020-08-29 12:05:32 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-08-29 16:41:27 +02:00
										 |  |  | 		try | 
					
						
							| 
									
										
										
										
											2018-10-27 10:55:30 +02:00
										 |  |  | 		{ | 
					
						
							| 
									
										
										
										
											2020-03-01 23:47:47 +07:00
										 |  |  | 			$this->ApiResponse($response, $this->getBatteriesService()->UndoChargeCycle($args['chargeCycleId'])); | 
					
						
							| 
									
										
										
										
											2019-01-19 14:51:51 +01:00
										 |  |  | 			return $this->EmptyApiResponse($response); | 
					
						
							| 
									
										
										
										
											2018-10-27 10:55:30 +02:00
										 |  |  | 		} | 
					
						
							|  |  |  | 		catch (\Exception $ex) | 
					
						
							|  |  |  | 		{ | 
					
						
							| 
									
										
										
										
											2019-01-19 14:51:51 +01:00
										 |  |  | 			return $this->GenericErrorResponse($response, $ex->getMessage()); | 
					
						
							| 
									
										
										
										
											2018-10-27 10:55:30 +02:00
										 |  |  | 		} | 
					
						
							| 
									
										
										
										
											2020-08-31 20:40:31 +02:00
										 |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	public function __construct(\DI\Container $container) | 
					
						
							|  |  |  | 	{ | 
					
						
							|  |  |  | 		parent::__construct($container); | 
					
						
							| 
									
										
										
										
											2018-10-27 10:55:30 +02:00
										 |  |  | 	} | 
					
						
							| 
									
										
										
										
											2018-04-11 19:49:35 +02:00
										 |  |  | } |