frustrated-dev
frustrated-dev

Reputation: 451

How can we add status code response when we hit a rest api?

How can we be able to get a status code response if we are not able to pass the data on the api? I need your help guys I am completely new on this. Thanks in advance.

contoller

...
public function user(Request $request) {

    $params = [
        "firstName" => $request->firstname,
        "lastName" => $request->lastname,
    ];

    return $this->VoucherFactory->saveUser($params);

}
...

VoucherFactory.php

...
public function saveUser($params)
{
    return $this->HttpClient->makeRequestPost($params, 'api/users', true);
    //status code response logic
}
...

Upvotes: 0

Views: 67

Answers (2)

JureW
JureW

Reputation: 683

I'd do smth like this: In the factory:

public function saveUser($params)
{
    // No params passed, set code to 400
    if(empty($params)) {
        $statusCode = 400;
    } else {
        // Params passed, try to save user
        $saveUserResult = $this->HttpClient->makeRequestPost($params, 'api/users', true);
        // User saved ok
        if($saveUserResult) {
            $statusCode = 200;
        } else {
            $statusCode = 400;
        }
    }
    return ["code" => $statusCode]; 
}

And than in the controller:

public function user(Request $request) {

    $params = [
        "firstName" => $request->firstname,
        "lastName" => $request->lastname,
    ];

    $result =  $this->VoucherFactory->saveUser($params);
    return $result["code"];
    // Or if using some kind of framework, smth like:
    // return $this->view(null, $result["code"]);

}

Upvotes: 2

Mar
Mar

Reputation: 321

in you saveUser() function,

 $this->HttpClient->makeRequestPost($params, 'api/users', true);
//after
return response()->setStatusCode(Response::HTTP_OK);

or in api/users route Controller, return the desired response

Upvotes: 1

Related Questions