/** @test */ public function logresponse_finds_null_for_non_existing_message() { list($mailStatistic, $project, $category) = $this->createMailStatistic(); $data = ['recipient' => '*****@*****.**', 'tag' => $project->name, 'status' => "delivered", 'message-id' => "some random thing"]; $request = new \Illuminate\Http\Request([], $data); $logResponse = \BitsOfLove\MailStats\LogResponse::create($request); $this->assertInstanceOf($this->logResponseClass, $logResponse); $this->assertNull($logResponse->getCategory()); }
/** * Entry point for the Mailgun webhooks * * @param Request $request * @return JsonResponse */ public function log(Request $request) { // lets log the full response just to be sure // but only not in production if (!app()->environment('production')) { $this->logger->addInfo(json_encode($request->request->all())); } try { $responseLogger = LogResponse::create($request); $responseLogger->log(); } catch (ProjectNotSupported $e) { return new JsonResponse(['success' => false, 'errors' => ["The project you've provided could not be found in our records"]], 400); } catch (\Exception $e) { return new JsonResponse(['success' => false, 'errors' => [$e->getMessage()]], 400); } return new JsonResponse(['success' => true]); }