| 
									
										
										
										
											2021-06-26 23:23:15 +08:00
										 |  |  | <?php | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | namespace BookStack\Exceptions; | 
					
						
							| 
									
										
										
										
											2016-02-04 04:52:25 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-05-09 01:49:58 +08:00
										 |  |  | use Exception; | 
					
						
							|  |  |  | use Illuminate\Contracts\Support\Responsable; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class PrettyException extends Exception implements Responsable | 
					
						
							| 
									
										
										
										
											2018-01-29 00:58:52 +08:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2021-05-09 01:49:58 +08:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * @var ?string | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     protected $subtitle = null; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							|  |  |  |      * @var ?string | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     protected $details = null; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							|  |  |  |      * Render a response for when this exception occurs. | 
					
						
							| 
									
										
										
										
											2021-06-26 23:23:15 +08:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2021-10-27 05:04:18 +08:00
										 |  |  |      * {@inheritdoc} | 
					
						
							| 
									
										
										
										
											2021-05-09 01:49:58 +08:00
										 |  |  |      */ | 
					
						
							|  |  |  |     public function toResponse($request) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         $code = ($this->getCode() === 0) ? 500 : $this->getCode(); | 
					
						
							| 
									
										
										
										
											2021-06-26 23:23:15 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-05-09 01:49:58 +08:00
										 |  |  |         return response()->view('errors.' . $code, [ | 
					
						
							| 
									
										
										
										
											2021-06-26 23:23:15 +08:00
										 |  |  |             'message'  => $this->getMessage(), | 
					
						
							| 
									
										
										
										
											2021-05-09 01:49:58 +08:00
										 |  |  |             'subtitle' => $this->subtitle, | 
					
						
							| 
									
										
										
										
											2021-06-26 23:23:15 +08:00
										 |  |  |             'details'  => $this->details, | 
					
						
							| 
									
										
										
										
											2021-05-09 01:49:58 +08:00
										 |  |  |         ], $code); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     public function setSubtitle(string $subtitle): self | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         $this->subtitle = $subtitle; | 
					
						
							| 
									
										
										
										
											2021-06-26 23:23:15 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-05-09 01:49:58 +08:00
										 |  |  |         return $this; | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2018-01-29 00:58:52 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-05-09 01:49:58 +08:00
										 |  |  |     public function setDetails(string $details): self | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         $this->details = $details; | 
					
						
							| 
									
										
										
										
											2021-06-26 23:23:15 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-05-09 01:49:58 +08:00
										 |  |  |         return $this; | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2018-01-29 00:58:52 +08:00
										 |  |  | } |