Skip to content
On this page

Custom routes

Besides the routes that Vroom autogenerates, you can also easily add custom routes for mocking endpoints not directly related to your models (supports get, post, patch and delete). For example you could mock a route that logs in a user with a hardcoded test password

TIP

Make sure to include this in a way where your bundler can ignore it in production. See notes on organisation here.

typescript
import { ServerError } from "vue-vroom";

type LoginInfo = {
  email?: string;
  password?: string;
};

vroom.server.post("/auth", (request, db) => {
  const { email, password } = request.json as LoginInfo;
  if (!email || !password) {
    throw new ServerError(400, { type: "missing_fields" });
  }

  if (password !== "verysecret") {
    throw new ServerError(400, { type: "wrong_credentials" });
  }

  return { token: "123456" };
});

You could now use it like so

typescript
vroom.api.post("/auth", {
  email: "test@test.test",
  password: "verysecret",
}).then((res) => {
  vroom.api.headers["authorization"] = `Bearer ${res.token}`;
}).catch((e) => {
  // Handle error
});

Released under the MIT License.