<?php

function getSkills() {
        require "./lib/config.php";
        $s3Client = new Aws\S3\S3Client([
                'version' => 'latest',
                'region'  => 'us-east-1',
                'endpoint' => $S3Server,
                'use_path_style_endpoint' => true,
                'credentials' => [
                        'key'    => $S3AccessKey,
                        'secret' => $S3SecretKey,
                ],
        ]);

        $result = $s3Client->ListObjects(['Bucket' => $S3BucketName, 'Delimiter'=>'/', 'Prefix' => 'skills/']);

        $response = [];
        foreach ($result["Contents"] as $skill){
                // Get a command object from the client
                $command = $s3Client->getCommand('GetObject', [
                    'Bucket' => $S3BucketName,
                    'Key'    => $skill["Key"]
                ]);
                
                // Create a pre-signed URL for a request with duration of 10 miniutes
                $presignedRequest = $s3Client->createPresignedRequest($command, '60 minutes');
                
                // Get the actual presigned-url
                $downloadURL =  (string)  $presignedRequest->getUri();
                $encodedUrl = rtrim(strtr(base64_encode($downloadURL), '+/', '-_'), '=');
                $path = "/rs:fit:0:$defaultSkillsWidth:1/g:no/{$encodedUrl}.webp";

                $signature = rtrim(strtr(base64_encode(hash_hmac('sha256', $imgProxySalt.$path, $imgProxyKey, true)), '+/', '-_'), '=');
                array_push($response, $imgProxyUrl . "/" . $signature . $path);
        }
        return $response;
}
