headers = $headers; $this->profile = $profile; $this->payload = $payload; } public function handle() { $this->handleVerb(); } public function handleVerb() { $verb = (string) $this->payload['type']; switch ($verb) { case 'Add': $this->handleAddActivity(); break; case 'Create': $this->handleCreateActivity(); break; case 'Follow': if (FollowValidator::validate($this->payload) == false) { return; } $this->handleFollowActivity(); break; case 'Announce': if (AnnounceValidator::validate($this->payload) == false) { return; } $this->handleAnnounceActivity(); break; case 'Accept': if (AcceptValidator::validate($this->payload) == false) { return; } $this->handleAcceptActivity(); break; case 'Delete': $this->handleDeleteActivity(); break; case 'Like': if (LikeValidator::validate($this->payload) == false) { return; } $this->handleLikeActivity(); break; case 'Reject': if (RejectValidator::validate($this->payload) == false) { return; } $this->handleRejectActivity(); break; case 'Undo': $this->handleUndoActivity(); break; case 'View': $this->handleViewActivity(); break; case 'Story:Reaction': $this->handleStoryReactionActivity(); break; case 'Story:Reply': $this->handleStoryReplyActivity(); break; case 'Flag': $this->handleFlagActivity(); break; case 'FeatureRequest': if (FeatureRequestValidator::validate($this->payload) == false) { return; } $this->handleFeatureRequestActivity(); break; case 'QuoteRequest': if (QuoteRequestValidator::validate($this->payload) == false) { return; } $this->handleQuoteRequestActivity(); break; case 'Update': $this->handleUpdateActivity(); break; case 'Move': if (MoveValidator::validate($this->payload) == false) { Log::info('[AP][INBOX][MOVE] VALIDATE_FAILURE '.json_encode($this->payload)); return; } $this->handleMoveActivity(); break; default: break; } } public function verifyNoteAttachment() { $activity = $this->payload['object']; if ( isset($activity['inReplyTo']) && ! empty($activity['inReplyTo']) && Helpers::validateUrl($activity['inReplyTo']) ) { return true; } return Helpers::verifyAttachments($activity); } public function actorFirstOrCreate($actorUrl) { return Helpers::profileFetch($actorUrl); } }