| 390 | }) {} |
| 391 | |
| 392 | class GroupsApi extends HttpApiGroup.make("groups") |
| 393 | .add( |
| 394 | HttpApiEndpoint.get("findById")`/${HttpApiSchema.param("id", Schema.NumberFromString)}` |
| 395 | .addSuccess(Group) |
| 396 | ) |
| 397 | .add( |
| 398 | HttpApiEndpoint.post("create")`/` |
| 399 | .setPayload(Schema.Union( |
| 400 | Schema.Struct(Struct.pick(Group.fields, "name")), |
| 401 | Schema.Struct({ foo: Schema.String }).pipe( |
| 402 | HttpApiSchema.withEncoding({ kind: "UrlParams" }) |
| 403 | ), |
| 404 | HttpApiSchema.Multipart( |
| 405 | Schema.Struct(Struct.pick(Group.fields, "name")) |
| 406 | ) |
| 407 | )) |
| 408 | .addSuccess(Group) |
| 409 | ) |
| 410 | .add( |
| 411 | HttpApiEndpoint.post("handle")`/handle/${HttpApiSchema.param("id", Schema.NumberFromString)}` |
| 412 | .setPayload(Schema.Struct({ |
| 413 | name: Schema.String |
| 414 | })) |
| 415 | .addSuccess(Schema.Struct({ |
| 416 | id: Schema.Number, |
| 417 | name: Schema.String |
| 418 | })) |
| 419 | ) |
| 420 | .add( |
| 421 | HttpApiEndpoint.post("handleRaw")`/handleraw/${HttpApiSchema.param("id", Schema.NumberFromString)}` |
| 422 | .setPayload(Schema.Struct({ |
| 423 | name: Schema.String |
| 424 | })) |
| 425 | .addSuccess(Schema.Struct({ |
| 426 | id: Schema.Number, |
| 427 | name: Schema.String |
| 428 | })) |
| 429 | ) |
| 430 | .addError(GroupError.pipe( |
| 431 | HttpApiSchema.asEmpty({ status: 418, decode: () => new GroupError() }) |
| 432 | )) |
| 433 | .prefix("/groups") |
| 434 | {} |
| 435 | |
| 436 | class UsersApi extends HttpApiGroup.make("users") |
| 437 | .add( |
nothing calls this directly
no test coverage detected
searching dependent graphs…