functions/builds/deletes worker
This commit is contained in:
parent
fd4f86b1c1
commit
57bc7d0584
2
.env
2
.env
|
@ -1,4 +1,4 @@
|
||||||
_APP_ENV=development
|
_APP_ENV=production
|
||||||
_APP_LOCALE=en
|
_APP_LOCALE=en
|
||||||
_APP_WORKER_PER_CORE=2
|
_APP_WORKER_PER_CORE=2
|
||||||
_APP_CONSOLE_WHITELIST_ROOT=disabled
|
_APP_CONSOLE_WHITELIST_ROOT=disabled
|
||||||
|
|
|
@ -132,7 +132,7 @@ CLI::setResource('queue', function (Group $pools) {
|
||||||
CLI::setResource('queueForMessaging', function (Connection $queue) {
|
CLI::setResource('queueForMessaging', function (Connection $queue) {
|
||||||
return new Phone($queue);
|
return new Phone($queue);
|
||||||
}, ['queue']);
|
}, ['queue']);
|
||||||
CLI::setResource('queueForMail', function (Connection $queue) {
|
CLI::setResource('queueForMails', function (Connection $queue) {
|
||||||
return new Mail($queue);
|
return new Mail($queue);
|
||||||
}, ['queue']);
|
}, ['queue']);
|
||||||
CLI::setResource('queueForBuilds', function (Connection $queue) {
|
CLI::setResource('queueForBuilds', function (Connection $queue) {
|
||||||
|
|
|
@ -732,8 +732,8 @@ App::post('/v1/account/sessions/magic-url')
|
||||||
->inject('dbForProject')
|
->inject('dbForProject')
|
||||||
->inject('locale')
|
->inject('locale')
|
||||||
->inject('queueForEvents')
|
->inject('queueForEvents')
|
||||||
->inject('queueForMail')
|
->inject('queueForMails')
|
||||||
->action(function (string $userId, string $email, string $url, Request $request, Response $response, Document $project, Database $dbForProject, Locale $locale, Event $queueForEvents, Mail $queueForMail) {
|
->action(function (string $userId, string $email, string $url, Request $request, Response $response, Document $project, Database $dbForProject, Locale $locale, Event $queueForEvents, Mail $queueForMails) {
|
||||||
|
|
||||||
if (empty(App::getEnv('_APP_SMTP_HOST'))) {
|
if (empty(App::getEnv('_APP_SMTP_HOST'))) {
|
||||||
throw new Exception(Exception::GENERAL_SMTP_DISABLED, 'SMTP disabled');
|
throw new Exception(Exception::GENERAL_SMTP_DISABLED, 'SMTP disabled');
|
||||||
|
@ -837,13 +837,11 @@ App::post('/v1/account/sessions/magic-url')
|
||||||
|
|
||||||
$body = $body->render();
|
$body = $body->render();
|
||||||
|
|
||||||
$queueForMail
|
$queueForMails
|
||||||
->setSubject($subject)
|
->setSubject($subject)
|
||||||
->setBody($body)
|
->setBody($body)
|
||||||
->setFrom($from)
|
->setFrom($from)
|
||||||
->setRecipient($user->getAttribute('email'))
|
->setRecipient($user->getAttribute('email'))
|
||||||
->setUrl($url)
|
|
||||||
->setLocale($locale->default)
|
|
||||||
->trigger()
|
->trigger()
|
||||||
;
|
;
|
||||||
|
|
||||||
|
@ -1624,6 +1622,8 @@ App::patch('/v1/account/password')
|
||||||
->label('sdk.response.code', Response::STATUS_CODE_OK)
|
->label('sdk.response.code', Response::STATUS_CODE_OK)
|
||||||
->label('sdk.response.type', Response::CONTENT_TYPE_JSON)
|
->label('sdk.response.type', Response::CONTENT_TYPE_JSON)
|
||||||
->label('sdk.response.model', Response::MODEL_ACCOUNT)
|
->label('sdk.response.model', Response::MODEL_ACCOUNT)
|
||||||
|
->label('sdk.offline.model', '/account')
|
||||||
|
->label('sdk.offline.key', 'current')
|
||||||
->param('password', '', new Password(), 'New user password. Must be at least 8 chars.')
|
->param('password', '', new Password(), 'New user password. Must be at least 8 chars.')
|
||||||
->param('oldPassword', '', new Password(), 'Current user password. Must be at least 8 chars.', true)
|
->param('oldPassword', '', new Password(), 'Current user password. Must be at least 8 chars.', true)
|
||||||
->inject('response')
|
->inject('response')
|
||||||
|
@ -2055,9 +2055,9 @@ App::post('/v1/account/recovery')
|
||||||
->inject('dbForProject')
|
->inject('dbForProject')
|
||||||
->inject('project')
|
->inject('project')
|
||||||
->inject('locale')
|
->inject('locale')
|
||||||
->inject('queueForMail')
|
->inject('queueForMails')
|
||||||
->inject('queueForEvents')
|
->inject('queueForEvents')
|
||||||
->action(function (string $email, string $url, Request $request, Response $response, Database $dbForProject, Document $project, Locale $locale, Mail $queueForMail, Event $queueForEvents) {
|
->action(function (string $email, string $url, Request $request, Response $response, Database $dbForProject, Document $project, Locale $locale, Mail $queueForMails, Event $queueForEvents) {
|
||||||
|
|
||||||
if (empty(App::getEnv('_APP_SMTP_HOST'))) {
|
if (empty(App::getEnv('_APP_SMTP_HOST'))) {
|
||||||
throw new Exception(Exception::GENERAL_SMTP_DISABLED, 'SMTP Disabled');
|
throw new Exception(Exception::GENERAL_SMTP_DISABLED, 'SMTP Disabled');
|
||||||
|
@ -2133,7 +2133,7 @@ App::post('/v1/account/recovery')
|
||||||
$body = $body->render();
|
$body = $body->render();
|
||||||
|
|
||||||
|
|
||||||
$queueForMail
|
$queueForMails
|
||||||
->setRecipient($profile->getAttribute('email', ''))
|
->setRecipient($profile->getAttribute('email', ''))
|
||||||
->setName($profile->getAttribute('name'))
|
->setName($profile->getAttribute('name'))
|
||||||
->setBody($body)
|
->setBody($body)
|
||||||
|
@ -2252,8 +2252,8 @@ App::post('/v1/account/verification')
|
||||||
->inject('dbForProject')
|
->inject('dbForProject')
|
||||||
->inject('locale')
|
->inject('locale')
|
||||||
->inject('queueForEvents')
|
->inject('queueForEvents')
|
||||||
->inject('queueForMail')
|
->inject('queueForMails')
|
||||||
->action(function (string $url, Request $request, Response $response, Document $project, Document $user, Database $dbForProject, Locale $locale, Event $queueForEvents, Mail $queueForMail) {
|
->action(function (string $url, Request $request, Response $response, Document $project, Document $user, Database $dbForProject, Locale $locale, Event $queueForEvents, Mail $queueForMails) {
|
||||||
|
|
||||||
if (empty(App::getEnv('_APP_SMTP_HOST'))) {
|
if (empty(App::getEnv('_APP_SMTP_HOST'))) {
|
||||||
throw new Exception(Exception::GENERAL_SMTP_DISABLED, 'SMTP Disabled');
|
throw new Exception(Exception::GENERAL_SMTP_DISABLED, 'SMTP Disabled');
|
||||||
|
@ -2312,13 +2312,11 @@ App::post('/v1/account/verification')
|
||||||
|
|
||||||
$body = $body->render();
|
$body = $body->render();
|
||||||
|
|
||||||
$queueForMail
|
$queueForMails
|
||||||
->setSubject($subject)
|
->setSubject($subject)
|
||||||
->setBody($body)
|
->setBody($body)
|
||||||
->setFrom($from)
|
->setFrom($from)
|
||||||
->setRecipient($user->getAttribute('email'))
|
->setRecipient($user->getAttribute('email'))
|
||||||
->setUrl($url)
|
|
||||||
->setLocale($locale->default)
|
|
||||||
->setName($user->getAttribute('name'))
|
->setName($user->getAttribute('name'))
|
||||||
->trigger()
|
->trigger()
|
||||||
;
|
;
|
||||||
|
|
|
@ -895,6 +895,7 @@ App::delete('/v1/functions/:functionId/deployments/:deploymentId')
|
||||||
if ($function->getAttribute('deployment') === $deployment->getId()) { // Reset function deployment
|
if ($function->getAttribute('deployment') === $deployment->getId()) { // Reset function deployment
|
||||||
$function = $dbForProject->updateDocument('functions', $function->getId(), new Document(array_merge($function->getArrayCopy(), [
|
$function = $dbForProject->updateDocument('functions', $function->getId(), new Document(array_merge($function->getArrayCopy(), [
|
||||||
'deployment' => '',
|
'deployment' => '',
|
||||||
|
'deploymentInternalId' => '',
|
||||||
])));
|
])));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -315,9 +315,9 @@ App::post('/v1/teams/:teamId/memberships')
|
||||||
->inject('user')
|
->inject('user')
|
||||||
->inject('dbForProject')
|
->inject('dbForProject')
|
||||||
->inject('locale')
|
->inject('locale')
|
||||||
->inject('queueForMail')
|
->inject('queueForMails')
|
||||||
->inject('queueForEvents')
|
->inject('queueForEvents')
|
||||||
->action(function (string $teamId, string $email, array $roles, string $url, string $name, Response $response, Document $project, Document $user, Database $dbForProject, Locale $locale, Mail $queueForMail, Event $queueForEvents) {
|
->action(function (string $teamId, string $email, array $roles, string $url, string $name, Response $response, Document $project, Document $user, Database $dbForProject, Locale $locale, Mail $queueForMails, Event $queueForEvents) {
|
||||||
|
|
||||||
$isPrivilegedUser = Auth::isPrivilegedUser(Authorization::getRoles());
|
$isPrivilegedUser = Auth::isPrivilegedUser(Authorization::getRoles());
|
||||||
$isAppUser = Auth::isAppUser(Authorization::getRoles());
|
$isAppUser = Auth::isAppUser(Authorization::getRoles());
|
||||||
|
@ -461,7 +461,7 @@ App::post('/v1/teams/:teamId/memberships')
|
||||||
|
|
||||||
$body = $body->render();
|
$body = $body->render();
|
||||||
|
|
||||||
$queueForMail
|
$queueForMails
|
||||||
->setSubject($subject)
|
->setSubject($subject)
|
||||||
->setBody($body)
|
->setBody($body)
|
||||||
->setFrom($from)
|
->setFrom($from)
|
||||||
|
|
|
@ -156,13 +156,13 @@ App::init()
|
||||||
->inject('user')
|
->inject('user')
|
||||||
->inject('queueForEvents')
|
->inject('queueForEvents')
|
||||||
->inject('queueForAudits')
|
->inject('queueForAudits')
|
||||||
->inject('queueForMail')
|
->inject('queueForMails')
|
||||||
->inject('queueForDeletes')
|
->inject('queueForDeletes')
|
||||||
->inject('queueForDatabase')
|
->inject('queueForDatabase')
|
||||||
->inject('queueForUsage')
|
->inject('queueForUsage')
|
||||||
->inject('dbForProject')
|
->inject('dbForProject')
|
||||||
->inject('mode')
|
->inject('mode')
|
||||||
->action(function (App $utopia, Request $request, Response $response, Document $project, Document $user, Event $queueForEvents, Audit $queueForAudits, Mail $queueForMail, Delete $queueForDeletes, EventDatabase $queueForDatabase, Usage $queueForUsage, Database $dbForProject, string $mode) use ($databaseListener) {
|
->action(function (App $utopia, Request $request, Response $response, Document $project, Document $user, Event $queueForEvents, Audit $queueForAudits, Mail $queueForMails, Delete $queueForDeletes, EventDatabase $queueForDatabase, Usage $queueForUsage, Database $dbForProject, string $mode) use ($databaseListener) {
|
||||||
|
|
||||||
$route = $utopia->match($request);
|
$route = $utopia->match($request);
|
||||||
|
|
||||||
|
@ -236,7 +236,7 @@ App::init()
|
||||||
->setProject($project)
|
->setProject($project)
|
||||||
->setUser($user);
|
->setUser($user);
|
||||||
|
|
||||||
$queueForMail
|
$queueForMails
|
||||||
->setProject($project)
|
->setProject($project)
|
||||||
->setUser($user);
|
->setUser($user);
|
||||||
|
|
||||||
|
|
|
@ -869,7 +869,7 @@ App::setResource('queue', function (Group $pools) {
|
||||||
App::setResource('queueForMessaging', function (Connection $queue) {
|
App::setResource('queueForMessaging', function (Connection $queue) {
|
||||||
return new Phone($queue);
|
return new Phone($queue);
|
||||||
}, ['queue']);
|
}, ['queue']);
|
||||||
App::setResource('queueForMail', function (Connection $queue) {
|
App::setResource('queueForMails', function (Connection $queue) {
|
||||||
return new Mail($queue);
|
return new Mail($queue);
|
||||||
}, ['queue']);
|
}, ['queue']);
|
||||||
App::setResource('queueForBuilds', function (Connection $queue) {
|
App::setResource('queueForBuilds', function (Connection $queue) {
|
||||||
|
|
|
@ -125,7 +125,7 @@ Server::setResource('queueForDatabase', function (Connection $queue) {
|
||||||
Server::setResource('queueForMessaging', function (Connection $queue) {
|
Server::setResource('queueForMessaging', function (Connection $queue) {
|
||||||
return new Phone($queue);
|
return new Phone($queue);
|
||||||
}, ['queue']);
|
}, ['queue']);
|
||||||
Server::setResource('queueForMail', function (Connection $queue) {
|
Server::setResource('queueForMails', function (Connection $queue) {
|
||||||
return new Mail($queue);
|
return new Mail($queue);
|
||||||
}, ['queue']);
|
}, ['queue']);
|
||||||
Server::setResource('queueForBuilds', function (Connection $queue) {
|
Server::setResource('queueForBuilds', function (Connection $queue) {
|
||||||
|
|
|
@ -383,17 +383,17 @@ Server::setResource('applyCertificateFiles', function () {
|
||||||
* @param int $attempt How many times it failed already
|
* @param int $attempt How many times it failed already
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
Server::setResource('notifyError', function (Mail $queueForMail) {
|
Server::setResource('notifyError', function (Mail $queueForMails) {
|
||||||
return function (
|
return function (
|
||||||
string $domain,
|
string $domain,
|
||||||
string $errorMessage,
|
string $errorMessage,
|
||||||
int $attempt,
|
int $attempt,
|
||||||
) use ($queueForMail) {
|
) use ($queueForMails) {
|
||||||
// Log error into console
|
// Log error into console
|
||||||
Console::warning('Cannot renew domain (' . $domain . ') on attempt no. ' . $attempt . ' certificate: ' . $errorMessage);
|
Console::warning('Cannot renew domain (' . $domain . ') on attempt no. ' . $attempt . ' certificate: ' . $errorMessage);
|
||||||
|
|
||||||
// Send mail to administratore mail
|
// Send mail to administratore mail
|
||||||
$queueForMail
|
$queueForMails
|
||||||
->setType(MAIL_TYPE_CERTIFICATE)
|
->setType(MAIL_TYPE_CERTIFICATE)
|
||||||
->setRecipient(App::getEnv('_APP_SYSTEM_SECURITY_EMAIL_ADDRESS'))
|
->setRecipient(App::getEnv('_APP_SYSTEM_SECURITY_EMAIL_ADDRESS'))
|
||||||
->setUrl('https://' . $domain)
|
->setUrl('https://' . $domain)
|
||||||
|
@ -406,7 +406,7 @@ Server::setResource('notifyError', function (Mail $queueForMail) {
|
||||||
])
|
])
|
||||||
->trigger();
|
->trigger();
|
||||||
};
|
};
|
||||||
}, ['queueForMail']);
|
}, ['queueForMails']);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Update all existing domain documents so they have relation to correct certificate document.
|
* Update all existing domain documents so they have relation to correct certificate document.
|
||||||
|
|
|
@ -308,6 +308,7 @@ services:
|
||||||
- appwrite-certificates:/storage/certificates:rw
|
- appwrite-certificates:/storage/certificates:rw
|
||||||
- ./app:/usr/src/code/app
|
- ./app:/usr/src/code/app
|
||||||
- ./src:/usr/src/code/src
|
- ./src:/usr/src/code/src
|
||||||
|
- ./vendor/utopia-php/storage:/usr/src/code/vendor/utopia-php/storage
|
||||||
environment:
|
environment:
|
||||||
- _APP_ENV
|
- _APP_ENV
|
||||||
- _APP_WORKER_PER_CORE
|
- _APP_WORKER_PER_CORE
|
||||||
|
|
|
@ -35,14 +35,14 @@ class Certificates extends Action
|
||||||
->desc('Certificates worker')
|
->desc('Certificates worker')
|
||||||
->inject('message')
|
->inject('message')
|
||||||
->inject('dbForConsole')
|
->inject('dbForConsole')
|
||||||
->inject('queueForMail')
|
->inject('queueForMails')
|
||||||
->callback(fn($message, $dbForConsole, $queueForMail) => $this->action($message, $dbForConsole, $queueForMail));
|
->callback(fn($message, $dbForConsole, $queueForMails) => $this->action($message, $dbForConsole, $queueForMails));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @throws Exception|Throwable
|
* @throws Exception|Throwable
|
||||||
*/
|
*/
|
||||||
public function action(Message $message, Database $dbForConsole, Mail $queueForMail): void
|
public function action(Message $message, Database $dbForConsole, Mail $queueForMails): void
|
||||||
{
|
{
|
||||||
$payload = $message->getPayload() ?? [];
|
$payload = $message->getPayload() ?? [];
|
||||||
|
|
||||||
|
@ -54,13 +54,13 @@ class Certificates extends Action
|
||||||
$domain = new Domain($document->getAttribute('domain', ''));
|
$domain = new Domain($document->getAttribute('domain', ''));
|
||||||
$skipRenewCheck = $payload['skipRenewCheck'] ?? false;
|
$skipRenewCheck = $payload['skipRenewCheck'] ?? false;
|
||||||
|
|
||||||
$this->execute($domain, $dbForConsole, $queueForMail, $skipRenewCheck);
|
$this->execute($domain, $dbForConsole, $queueForMails, $skipRenewCheck);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @throws Exception|Throwable
|
* @throws Exception|Throwable
|
||||||
*/
|
*/
|
||||||
private function execute(Domain $domain, Database $dbForConsole, Mail $queueForMail, bool $skipRenewCheck = false): void
|
private function execute(Domain $domain, Database $dbForConsole, Mail $queueForMails, bool $skipRenewCheck = false): void
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* 1. Read arguments and validate domain
|
* 1. Read arguments and validate domain
|
||||||
|
@ -152,7 +152,7 @@ class Certificates extends Action
|
||||||
$certificate->setAttribute('renewDate', DateTime::now());
|
$certificate->setAttribute('renewDate', DateTime::now());
|
||||||
|
|
||||||
// Send email to security email
|
// Send email to security email
|
||||||
$this->notifyError($domain->get(), $e->getMessage(), $attempts, $queueForMail);
|
$this->notifyError($domain->get(), $e->getMessage(), $attempts, $queueForMails);
|
||||||
} finally {
|
} finally {
|
||||||
// All actions result in new updatedAt date
|
// All actions result in new updatedAt date
|
||||||
$certificate->setAttribute('updated', DateTime::now());
|
$certificate->setAttribute('updated', DateTime::now());
|
||||||
|
@ -340,11 +340,11 @@ class Certificates extends Action
|
||||||
* @param string $domain Domain that caused the error
|
* @param string $domain Domain that caused the error
|
||||||
* @param string $errorMessage Verbose error message
|
* @param string $errorMessage Verbose error message
|
||||||
* @param int $attempt How many times it failed already
|
* @param int $attempt How many times it failed already
|
||||||
* @param Mail $queueForMail
|
* @param Mail $queueForMails
|
||||||
* @return void
|
* @return void
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
private function notifyError(string $domain, string $errorMessage, int $attempt, Mail $queueForMail): void
|
private function notifyError(string $domain, string $errorMessage, int $attempt, Mail $queueForMails): void
|
||||||
{
|
{
|
||||||
// Log error into console
|
// Log error into console
|
||||||
Console::warning('Cannot renew domain (' . $domain . ') on attempt no. ' . $attempt . ' certificate: ' . $errorMessage);
|
Console::warning('Cannot renew domain (' . $domain . ') on attempt no. ' . $attempt . ' certificate: ' . $errorMessage);
|
||||||
|
@ -375,7 +375,7 @@ class Certificates extends Action
|
||||||
->setParam('{{bg-content}}', '#ffffff')
|
->setParam('{{bg-content}}', '#ffffff')
|
||||||
->setParam('{{text-content}}', '#000000');
|
->setParam('{{text-content}}', '#000000');
|
||||||
|
|
||||||
$queueForMail
|
$queueForMails
|
||||||
->setRecipient(App::getEnv('_APP_SYSTEM_SECURITY_EMAIL_ADDRESS'))
|
->setRecipient(App::getEnv('_APP_SYSTEM_SECURITY_EMAIL_ADDRESS'))
|
||||||
->setBody($body->render())
|
->setBody($body->render())
|
||||||
->setName('Appwrite Administrator')
|
->setName('Appwrite Administrator')
|
||||||
|
|
|
@ -59,7 +59,7 @@ class Deletes extends Action
|
||||||
$hourlyUsageRetentionDatetime = $payload['hourlyUsageRetentionDatetime'] ?? null;
|
$hourlyUsageRetentionDatetime = $payload['hourlyUsageRetentionDatetime'] ?? null;
|
||||||
$resource = $payload['resource'] ?? null;
|
$resource = $payload['resource'] ?? null;
|
||||||
$document = new Document($payload['document'] ?? []);
|
$document = new Document($payload['document'] ?? []);
|
||||||
$project = new Document($payload['project'] ?? []);
|
$project = new Document($payload['project'] ?? []);
|
||||||
|
|
||||||
switch (strval($type)) {
|
switch (strval($type)) {
|
||||||
case DELETE_TYPE_DOCUMENT:
|
case DELETE_TYPE_DOCUMENT:
|
||||||
|
@ -186,6 +186,7 @@ class Deletes extends Action
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* @param Database $dbForConsole
|
||||||
* @param callable $getProjectDB
|
* @param callable $getProjectDB
|
||||||
* @param string $resource
|
* @param string $resource
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
|
@ -618,7 +619,6 @@ class Deletes extends Action
|
||||||
$projectId = $project->getId();
|
$projectId = $project->getId();
|
||||||
$dbForProject = $getProjectDB($project);
|
$dbForProject = $getProjectDB($project);
|
||||||
$deploymentId = $document->getId();
|
$deploymentId = $document->getId();
|
||||||
$functionId = $document->getAttribute('resourceId');
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Delete deployment files
|
* Delete deployment files
|
||||||
|
|
|
@ -142,6 +142,7 @@ class Functions extends Action
|
||||||
$this->execute(
|
$this->execute(
|
||||||
dbForProject: $dbForProject,
|
dbForProject: $dbForProject,
|
||||||
queueForFunctions: $queueForFunctions,
|
queueForFunctions: $queueForFunctions,
|
||||||
|
queueForEvents: $queueForEvents,
|
||||||
queueForUsage: $queueForUsage,
|
queueForUsage: $queueForUsage,
|
||||||
project: $project,
|
project: $project,
|
||||||
function: $function,
|
function: $function,
|
||||||
|
|
|
@ -60,13 +60,14 @@ class Webhooks extends Action
|
||||||
|
|
||||||
private function execute(array $events, string $payload, Document $webhook, Document $user, Document $project): void
|
private function execute(array $events, string $payload, Document $webhook, Document $user, Document $project): void
|
||||||
{
|
{
|
||||||
|
|
||||||
$url = \rawurldecode($webhook->getAttribute('url'));
|
$url = \rawurldecode($webhook->getAttribute('url'));
|
||||||
$signatureKey = $webhook->getAttribute('signatureKey');
|
$signatureKey = $webhook->getAttribute('signatureKey');
|
||||||
$signature = base64_encode(hash_hmac('sha1', $url . $payload, $signatureKey, true));
|
$signature = base64_encode(hash_hmac('sha1', $url . $payload, $signatureKey, true));
|
||||||
$httpUser = $webhook->getAttribute('httpUser');
|
$httpUser = $webhook->getAttribute('httpUser');
|
||||||
$httpPass = $webhook->getAttribute('httpPass');
|
$httpPass = $webhook->getAttribute('httpPass');
|
||||||
$ch = \curl_init($webhook->getAttribute('url'));
|
$ch = \curl_init($webhook->getAttribute('url'));
|
||||||
|
var_dump($url);
|
||||||
\curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
|
\curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
|
||||||
\curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
|
\curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
|
||||||
\curl_setopt($ch, CURLOPT_HEADER, 0);
|
\curl_setopt($ch, CURLOPT_HEADER, 0);
|
||||||
|
|
Loading…
Reference in a new issue