HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux ip-172-31-42-149 5.15.0-1084-aws #91~20.04.1-Ubuntu SMP Fri May 2 07:00:04 UTC 2025 aarch64
User: ubuntu (1000)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/vhost/disk-apps/demo.sports-crowd.com/app/Http/Controllers/AdobeSignController.php
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class AdobeSignController extends Controller
{
    public function webhooksListener(Request $request)
    {
        $utilController = new UtilController;
        $utilController->logFile($request, 'adobesign');
        $content = json_decode($request->getContent(), true);
        if ($content && $content['agreement'] && $content['agreement']['id']) {
            $agreementId = $content['agreement']['id'];
            $agreement = $this->formData($agreementId);
            if ($agreement && $agreement['formDataList']) {
                $identification = $agreement['formDataList']['identification'] ?? $agreement['formDataList']['document'];
            }

            $documentId = $content['agreement']['documentsInfo']['documents'][0]['id'];
            $document = $this->document($agreementId, $documentId);

            if ($document) {
                $externalFormId                 = $content['agreement']['name'];
                $agreementDocument              = $content['agreement']['documentsInfo']['documents'][0];
                $extension                      = $this->extension($agreementDocument['mimeType']);
                $parameters                     = new \stdClass();
                $parameters->identification     = $identification;
                $parameters->external_form_id   = $externalFormId;
                $parameters->file               = $document;
                $parameters->extension          = $extension;
                $controller                     = new AcademyDocumentController;
                $controller->uploadUserAcademyDocumentExternal($parameters);
            }
        }

        header('Content-Type: application/json');
        return response(json_encode(array("xAdobeSignClientId" => config('adobesign.clientId'))));
    }

    private function formData($agreementId)
    {
        // example: https://api.na4.adobesign.com:443/api/rest/v6/agreements/CBJCHBCAABAAh3sk2XRmCDITJUb92GcUe94YCuRL3hQL/formData
        try {
            $client = new \GuzzleHttp\Client();
            $response = $client->get(config('adobesign.api') . "/agreements/{$agreementId}/formData", [
                'headers' => [
                    'Accept'        => 'application/json',
                    'Authorization' => 'Bearer ' . config('adobesign.token')
                ],
            ]);

            $body = $response->getBody()->getContents();
            $body = json_decode($body, true);

            return $body;
        } catch (\Exception $e) {
            return response(array("r" => false, "m" => $e->getMessage()));
        }
    }

    private function document($agreementId, $documentId)
    {
        // example: https://api.na4.adobesign.com:443/api/rest/v6/agreements/CBJCHBCAABAAwdZ1mlvmO_BXk3bUFohGi9xbl0Sxuw2B/documents/3AAABLblqZhBTxBmvE-PxwvSbx6tQGjxAFSkwHs1nsfKMgtVUImKYD_jJ31mGdBtF4-_1xKKSNayIZIlfG2-5XAYXOPySCA9O
        try {
            $client = new \GuzzleHttp\Client();
            $response = $client->get(config('adobesign.api') . "/agreements/{$agreementId}/documents/{$documentId}", [
                'headers' => [
                    'Accept'        => '*/*;encoding=base64',
                    'Authorization' => 'Bearer ' . config('adobesign.token')
                ],
            ]);

            $body = $response->getBody()->getContents();

            return $body;
        } catch (\Exception $e) {
            return response(array("r" => false, "m" => $e->getMessage()));
        }
    }
}