<?php

namespace Qcloud\Cos;

function region_map($region)
{
    $regionmap = array(
        'cn-east' => 'ap-shanghai',
        'cn-south' => 'ap-guangzhou',
        'cn-north' => 'ap-beijing-1',
        'cn-south-2' => 'ap-guangzhou-2',
        'cn-southwest' => 'ap-chengdu',
        'sg' => 'ap-singapore',
        'tj' => 'ap-beijing-1',
        'bj' => 'ap-beijing',
        'sh' => 'ap-shanghai',
        'gz' => 'ap-guangzhou',
        'cd' => 'ap-chengdu',
        'sgp' => 'ap-singapore'
    );
    if (isset($regionmap[$region])) {
        return $regionmap[$region];
    }
    return $region;
}

function encodeKey($key)
{
    return str_replace('%2F', '/', rawurlencode($key));
}

function endWith($haystack, $needle)
{
    $length = strlen($needle);
    if ($length == 0) {
        return true;
    }
    return (substr($haystack, -$length) === $needle);
}

function startWith($haystack, $needle)
{
    $length = strlen($needle);
    if ($length == 0) {
        return true;
    }
    return (substr($haystack, 0, $length) === $needle);
}

function headersMap($command, $request)
{
    $headermap = array(
        'TransferEncoding' => 'Transfer-Encoding',
        'ChannelId' => 'x-cos-channel-id'
    );
    foreach ($headermap as $key => $value) {
        if (isset($command[$key])) {
            $request = $request->withHeader($value, $command[$key]);
        }
    }
    return $request;
}

if (!function_exists('str_contains')) {
    function str_contains($haystack, $needle)
    {
        return strpos($haystack, $needle) !== false;
    }
}
