Exemplo n.º 1
0
        }
    }
    if (count($groupRecipients) > 0) {
        $usersTableGateway = new DirectusUsersTableGateway($acl, $ZendDb);
        $result = $usersTableGateway->findActiveUserIdsByGroupIds($groupRecipients);
        foreach ($result as $item) {
            $userRecipients[] = $item['id'];
        }
    }
    $userRecipients[] = $currentUser['id'];
    $messagesTableGateway = new DirectusMessagesTableGateway($acl, $ZendDb);
    $id = $messagesTableGateway->sendMessage($requestPayload, array_unique($userRecipients), $currentUser['id']);
    if ($id) {
        $Activity = new DirectusActivityTableGateway($acl, $ZendDb);
        $requestPayload['id'] = $id;
        $Activity->recordMessage($requestPayload, $currentUser['id']);
    }
    $mail = new Directus\Mail\Mailer();
    foreach ($userRecipients as $recipient) {
        $usersTableGateway = new DirectusUsersTableGateway($acl, $ZendDb);
        $user = $usersTableGateway->findOneBy('id', $recipient);
        if (isset($user) && $user['email_messages'] == 1) {
            $messageNotificationMail = new Directus\Mail\NotificationMail($user['email'], $requestPayload['subject'], $requestPayload['message']);
            $mail->send($messageNotificationMail);
            $mail->ClearAllRecipients();
        }
    }
    $message = $messagesTableGateway->fetchMessageWithRecipients($id, $currentUser['id']);
    JsonView::render($message);
});
$app->get("/{$v}/messages/recipients/?", function () use($params, $requestPayload, $app, $acl, $ZendDb) {