/** * Main function for building up a ping and sending it off. First checks if the type is valid. * Called after the input from the slash command has been parsed, or can be called by external scripts. * * @param String $type * @param String $message * @param String $sender * * @return bool */ public function ping($type, $message, $sender) { if (!$this->isValidPingType($type)) { return false; } $payload = $this->makePayload($type, $message, $sender); if ($this->slack->sendMessageToServer($payload)) { $this->returnMessage = 'Ping sent'; if (config('pingbot.ping-bots.' . $type . '.announce')) { $this->slack->sendMessageToServer($this->announcementPayload($type, $sender)); } return true; } return false; }
/** * @param $channel * @throws SlackException */ public function manageChannel($channel) { $channelIds = []; $channelUsers = $channel->is_group ? $this->slackMonkey->getUsersForGroup($channel->slack_id) : $this->slackMonkey->getUsersForChannel($channel->slack_id); foreach ($channelUsers as $user) { $channelIds[] = $user; $hasAccess = false; foreach ($channel->groups as $group) { /** @var \JamylBot\Group $group */ if ($group->isMemberBySlack($user)) { $hasAccess = true; } } if (!$hasAccess && $user != config('slack.jamyl-id')) { $channel->is_group ? $this->slackMonkey->kickFromGroup($user, $channel->slack_id) : $this->slackMonkey->kickFromChannel($user, $channel->slack_id); } } foreach ($channel->groups as $group) { foreach ($group->users as $jamylUser) { if (!in_array($jamylUser->slack_id, $channelIds) && $group->isMemberBySlack($jamylUser->slack_id)) { $channel->is_group ? $this->slackMonkey->addToGroup($jamylUser->slack_id, $channel->slack_id) : $this->slackMonkey->addToChannel($jamylUser->slack_id, $channel->slack_id); } } } }
/** * Execute the console command. * * @return mixed */ public function fire(SlackMonkey $slackMonkey) { $payload = ['channel' => '#p-drama', 'username' => config('pingbot.ping-bot-name'), 'icon_emoji' => config('pingbot.ping-bot-emoji'), 'text' => 'HAPPY BIRTHDAY @punkslap', 'link_names' => 1]; $slackMonkey->sendMessageToServer($payload); }