Skip to content

NabeelYousafPasha/json-response-laravel-helper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 

Repository files navigation

DRY (Dont Repeat Yourself) Approach for your API JSON Responses in Laravel

successJsonResponse(), errorJsonResponse() and errorExceptionJsonResponse()

Anywhere, Everywhere

  • For SUCCESS responses use successJsonResponse()
  • For ERROR responses use errorJsonResponse()
  • For EXCEPTION responses use errorExceptionJsonResponse()


Requirements

Tech
PHP
LARAVEL

Setup

1. Copy directory/file Helpers/helper.php into your Laravel app/ directory
2. Navigate to composer.json file
3. Find "autoload": { and add "files": [ "app/Helpers/helper.php" ]

3.(a) Your autload section of composer.json should look like this

"autoload": {
    "psr-4": {
        "App\\": "app/",
        "Database\\Factories\\": "database/factories/",
        "Database\\Seeders\\": "database/seeders/"
    },
    "files": [
        "app/Helpers/helper.php"
    ]
},

4. Run composer dump-autoload


Usage

  • For SUCCESS responses use successJsonResponse()
  • For ERROR responses use errorJsonResponse()
  • For EXCEPTION responses use errorExceptionJsonResponse()

Example

<?php

namespace App\Http\Controllers\API;

use App\Http\Controllers\Controller;
use App\Services\RapidApiService;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;

class RapidApiController extends Controller
{
    protected RapidApiService $rapidApiService;

    public function __construct(
        RapidApiService $rapidApiService
    )
    {
        $this->rapidApiService = $rapidApiService;
    }

    /**
     *
     * @param Request $request
     * 
     * @return JsonResponse
     */
    public function advancePhoneNumberLookup(Request $request): JsonResponse
    {
        $request->validate([
            'dialcode' => ['required', 'string', 'max:255',],
        ]);

        $response = $this->rapidApiService
            ->advancePhoneNumberLookup($request->get('dialcode'));

        if ($response['error']) {
            return errorJsonResponse([
                'message' => $response['json']['message'] ?? 'Something wend wrong',
            ]);
        }

        return successJsonResponse([
            ...$response,
        ]);
    }

    /**
     *
     * @param Request $request
     * 
     * @return JsonResponse
     */
    public function basicPhoneNumberValidation(Request $request): JsonResponse
    {
        $request->validate([
            'dialcode' => ['required', 'string', 'max:255',],
            'country_code' => ['nullable', 'string', 'max:255',],
        ]);

        $response = $this->rapidApiService
            ->basicPhoneNumberValidation(
                $request->get('dialcode'),
                $request->get('country_code')
            );

        if ($response['error']) {
            return errorJsonResponse([
                'message' => $response['json']['message'] ?? 'Something wend wrong',
            ]);
        }

        return successJsonResponse([
            ...$response,
        ]);
    }
}

Project Maintainer


NABEEL YOUSAF PASHA
@NabeelYousafPasha

About

DRY Global Helper - json-response-laravel-helper

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages