Skip to main content

Status code

Status code is a way to represent the result of a request. These HTTP responses indicate whether a specific HTTP request has been successfully completed. Responses are grouped in five classes:

  • Informational responses (100-199)
  • Successful responses (200-299)
  • Redirection messages (300-399)
  • Client error responses (400-499)
  • Server error responses (500-599)

You can find more details about the status code in the MDN Web Docs.

The status codes listed below are defined by RFC 9110

List of status codes

ExpressoTS provides a list of status codes that you can use in your application represented by the StatusCode enum.

Usage example

Example of how to use the status code in a controller, use case, using res object, @http decorator etc.

Controller example
import { StatusCode } from "@expressots/core";

@controller("/user/create")
class CreateUserController extends BaseController {
constructor(private createUserUseCase: CreateUserUseCase) {}

@Post("/")
execute(
@body() data: ICreateUserRequestDTO,
@response() res: Response
): ICreateUserResponseDTO {
return this.callUseCase(this.createUserUseCase.execute(data), res, StatusCode.Created);
}
}
Using res object
import { StatusCode } from "@expressots/core";

@controller("/")
class ExampleController {
@Get("/")
execute(@response() res: Response) {
res.status(StatusCode.OK).send("Hello World!");
}
}
Using @http decorator
import { StatusCode } from "@expressots/core";

@controller("/")
class ExampleController {
@Get("/")
@Http(StatusCode.OK)
execute() {
return "Hello World!";
}
}
Use case example
import { StatusCode } from "@expressots/core";

@provide(CreateUserUseCase)
class CreateUserUseCase {
constructor(private userRepository: UserRepository) {}

execute(data: ICreateUserRequestDTO): ICreateUserResponseDTO | null {
try {
const { name, email } = data;

const user: User | null = this.userRepository.create(new User(name, email));

if (!user) {
Report.Error("User already exists", StatusCode.BadRequest, "create-user-usecase");
}

let response: ICreateUserResponseDTO;

if (user !== null) {
response = {
id: user.Id,
name: user.name,
email: user.email,
status: "success",
};
return response;
}

return null;
} catch (error: any) {
throw error;
}
}
}

Support us ❤️

ExpressoTS is an MIT-licensed open source project. It's an independent project with ongoing development made possible thanks to your support. If you'd like to help, please read our support guide.