• File: SendResponse.php
  • Full Path: /var/www/imaliapi/app/Classes/SendResponse.php
  • Date Modified: 09/13/2024 10:11 PM
  • File size: 4.84 KB
  • MIME-type: text/x-php
  • Charset: utf-8
<?php

namespace App\Classes;

abstract class SendResponse
{
    // ------- SUCCESS RESPONSE ------
    private static function generateParams($data, $paramsKeyValues)
    {
        if (count($paramsKeyValues) > 0) {
            foreach ($paramsKeyValues as $key => $value) {
                $data[$key] = $value;
            }
        }

        return $data;
    }

    private static function getData($msgType, $msgPos, $msgPT, $msgEN)
    {
        $data = [
            'code' => trans($msgType)[$msgPos]['cody'],
            $msgType => trans($msgType)[$msgPos][$msgType],
            'type' => trans($msgType)[$msgPos]['type'],
            'message' => $msgPT,
            'messageLang' => [
                'pt' => $msgPT,
                'en' => $msgEN,
            ]
        ];

        return $data;
    }

    public static function  successResp200($msgPT = 'Transação bem sucedida', $msgEN = 'Transaction Successfully', $paramsKeyValues = array())
    {
        $data = SendResponse::getData('success', 0, $msgPT, $msgEN);

        $data = SendResponse::generateParams($data, $paramsKeyValues);

        return response()->json($data, trans('success')[0]['http_code']);
    }

    public static function  successResp201($msgPT = 'Transação bem sucedida', $msgEN = 'Transaction Successfully', $paramsKeyValues = array())
    {
        $data = SendResponse::getData('success', 1, $msgPT, $msgEN);

        $data = SendResponse::generateParams($data, $paramsKeyValues);

        return response()->json($data, trans('success')[1]['http_code']);
    }




    // ------- ERROR RESPONSE ------

    public static function  errorResp400($msgPT = 'Parametros ou dados Invalidos', $msgEN = 'Invalid Params or Data', $paramsKeyValues = array())
    {

        $data = SendResponse::getData('error', 0, $msgPT, $msgEN);

        $data = SendResponse::generateParams($data, $paramsKeyValues);

        return response()->json($data, trans('error')[0]['http_code']);
    }

    public static function  errorResp401unauthenticated($msgPT = 'Não auntenticado', $msgEN = 'Unauthenticated', $paramsKeyValues = array())
    {

        $data = SendResponse::getData('error', 1, $msgPT, $msgEN);

        $data = SendResponse::generateParams($data, $paramsKeyValues);

        return response()->json($data, trans('error')[1]['http_code']);
    }

    public static function  errorResp403forbidden($msgPT = 'Acção proibida', $msgEN = 'Forbidden to perform the action', $paramsKeyValues = array())
    {

        $data = SendResponse::getData('error', 2, $msgPT, $msgEN);

        $data = SendResponse::generateParams($data, $paramsKeyValues);

        return response()->json($data, trans('error')[2]['http_code']);
    }

    public static function  errorResp404notfound($msgPT = 'Não encontrado', $msgEN = 'Not found', $paramsKeyValues = array())
    {

        $data = SendResponse::getData('error', 3, $msgPT, $msgEN);

        $data = SendResponse::generateParams($data, $paramsKeyValues);

        return response()->json($data, trans('error')[3]['http_code']);
    }

    public static function  errorResp408timeout($msgPT = 'Requisição expirou', $msgEN = 'Request Timeout', $paramsKeyValues = array())
    {

        $data = SendResponse::getData('error', 4, $msgPT, $msgEN);

        $data = SendResponse::generateParams($data, $paramsKeyValues);

        return response()->json($data, trans('error')[4]['http_code']);
    }

    public static function  errorResp409conflit($msgPT = 'Duplicação de dados', $msgEN = 'Data Conflit', $paramsKeyValues = array())
    {
        $data = SendResponse::getData('error', 5, $msgPT, $msgEN);

        $data = SendResponse::generateParams($data, $paramsKeyValues);

        return response()->json($data, trans('error')[5]['http_code']);
    }

    public static function  errorResp401unauthorized($msgPT = 'Não autorizado', $msgEN = 'Unauthorized', $paramsKeyValues = array())
    {

        $data = SendResponse::getData('error', 6, $msgPT, $msgEN);

        $data = SendResponse::generateParams($data, $paramsKeyValues);

        return response()->json($data, trans('error')[6]['http_code']);
    }

    public static function  errorResp402rejected($msgPT = 'Transação rejeitada', $msgEN = 'Transaction Rejected', $paramsKeyValues = array())
    {

        $data = SendResponse::getData('error', 7, $msgPT, $msgEN);

        $data = SendResponse::generateParams($data, $paramsKeyValues);

        return response()->json($data, trans('error')[7]['http_code']);
    }

    // ------- WARNING RESPONSE ------

    public static function  warningResp500serverError($msgPT = 'Erro interno do servidor', $msgEN = 'Internal server error', $paramsKeyValues = array())
    {
        $data = SendResponse::getData('warning', 0, $msgPT, $msgEN);

        $data = SendResponse::generateParams($data, $paramsKeyValues);

        return response()->json($data, trans('warning')[0]['http_code']);
    }
}