Analisando propostas

Transformar Cron Jobs em Webhooks, Projeto em Php com Twig.

Publicado em 13 de Agosto de 2023 dias na TI e Programação

Sobre este projeto

Aberto

Projeto em Php 7.4, php, twig e js, nada além. Preciso passar meus processos crons para webhooks para fins de deixar o servidor mais leve e melhor otimizado, todas as crons estão prontas e rodando perfeitamente, daria para usar como base, as crons são responsáveis por:

verificar o status do pedido:
pendente, em progresso, cancelado, parcialmente concluído, concluído, falha.

Enviar reposição de pedidos:
Caso identifique queda dos serviços comprados para as redes sociais, a cron será responsável por enviar para o provedor de serviços a reposição (completar o que falta do pedido) dos serviços durante a garantia, que pode variar de 15 a 999 dias.

Sincronizar preços
Sempre que o provedor de serviços muda os valores, o status do pedido, tempo médio de início, as crons atualizam diretamente no banco de dados, para ter uma noção, aqui está uma parte do código:

$smmapi = new SMMApi();

// Obter os registros da tabela service_api que correspondem aos service_api da tabela services
$services_query = $conn->prepare("Select s.api_service, s.category_id, s.service_api, a.api_key, a.api_url
                                  from services s
                                  join service_api a on s.service_api = a.id");
$services_query->execute();
$services = $services_query->fetchAll(PDO::FETCH_ASSOC);

if (!empty($services)) {
    foreach ($services as $service) {
        $api_key = $service['api_key'];
        $api_url = $service['api_url'];
       
        // Fazer a chamada à API usando os parâmetros key e action
        $api_response = $smmapi->action(array(
            'key' => $api_key,
            'action' => 'services'
        ), $api_url);
       
        // Exibir os resultados dos serviços da tabela services
        echo "API Service: " . $Service['api_service'] . "<Br>";
        echo "Service API: " . $Service['service_api'] . "<Br>";
        echo "Categoria ID: " . $Service['category_id'] . "<Br>";
       
        // Processar a resposta da api e atualizar os registros
        if (!empty($api_response)) {
            foreach ($api_response as $response) {
                if ($response->service == $service['api_service']) {
                   
                  //  echo "api service: " . $Response->service . "<Br>";
                  //  echo "Name: " . $Response->name . "<Br>";
                  //  echo "Category: " . $Response->category . "<Br>";
                  //  echo "Rate: " . $Response->rate . "<Br>";
                  //  echo "Min: " . $Response->min . "<Br>";
                  //  echo "Max: " . $Response->max . "<Br>";
                  //  echo "Type: " . $Response->type . "<Br>";
                  //  echo "Description: " . $Response->desc . "<Br>";
                  //  echo "Dripfeed: " . $Response->dripfeed . "<Br>";
                  //  echo "Refill: " . $Response->refill . "<Br>";
                   
                    // Montar o json
                    $json_data = array(
                        "min" => $response->min,
                        "max" => $response->max,
                        "rate" => $response->rate,
                        "refill" => $response->refill,
                        "currency" => "usd"
                    );
                   
                    // atualizar a coluna api_detail, service_name, service_max, service_min na tabela services
                    $update_detail = $conn->prepare("update services set service_max=:service_max, service_min=:service_min, api_detail=:api_detail, service_name=:service_name where api_service=:api_service");
                    $update_detail->execute(array(
                        "api_detail" => json_encode($json_data),
                        "service_name" => $response->name,
                        "service_min" => $response->min,
                        "service_max" => $response->max,
                        "api_service" => $response->service
                    ));

                    // atualizar a coluna category_name na tabela categories
                    $update_category = $conn->prepare("update categories set category_name=:category_name where category_id=:category_id");
                    $update_category->execute(array(
                        "category_name" => $response->category,
                        "category_id" => $service['category_id']
essa é a cron de sincronização de valores.

O projeto não precisa ser com webhooks, pode ser outra forma que faça tudo isso fora do meu servidor ou ao menos otimize 95% do meu código.

Tem outras funcionalidades nas crons e no código em si, preciso desse projeto para 1 ou 2 semanas após o início do projeto. Não tenho interesse em negociação por fora da WORKANA, não insista.

Contexto Geral do Projeto

Preciso de OTIMIZAÇÃO, velocidade, funcionalidade perfeita, se desempenhar bem, vários outros projetos o aguarda.

Categoria TI e Programação
Subcategoria Outros
Tamanho do projeto Médio
Isso é um projeto ou uma posição de trabalho? Um projeto
Tenho, atualmente Eu tenho especificações
Disponibilidade requerida Conforme necessário

Prazo de Entrega: 02 de Setembro de 2023

Habilidades necessárias