| 434 | {} |
| 435 | |
| 436 | class UsersApi extends HttpApiGroup.make("users") |
| 437 | .add( |
| 438 | HttpApiEndpoint.get("findById")`/${HttpApiSchema.param("id", Schema.NumberFromString)}` |
| 439 | .addSuccess(User) |
| 440 | ) |
| 441 | .add( |
| 442 | HttpApiEndpoint.post("create")`/` |
| 443 | .setPayload(Schema.Struct(Struct.omit( |
| 444 | User.fields, |
| 445 | "id", |
| 446 | "createdAt" |
| 447 | ))) |
| 448 | .setUrlParams(Schema.Struct({ |
| 449 | id: Schema.NumberFromString |
| 450 | })) |
| 451 | .addSuccess(User) |
| 452 | .addError(UserError) |
| 453 | .addError(UserError) // ensure errors are deduplicated |
| 454 | ) |
| 455 | .add( |
| 456 | HttpApiEndpoint.get("list")`/` |
| 457 | .setHeaders(Schema.Struct({ |
| 458 | page: Schema.NumberFromString.pipe( |
| 459 | Schema.optionalWith({ default: () => 1 }) |
| 460 | ) |
| 461 | })) |
| 462 | .setUrlParams(Schema.Struct({ |
| 463 | query: Schema.optional(Schema.String).annotations({ description: "search query" }) |
| 464 | })) |
| 465 | .addSuccess(Schema.Array(User)) |
| 466 | .addError(NoStatusError) |
| 467 | .annotate(OpenApi.Deprecated, true) |
| 468 | .annotate(OpenApi.Summary, "test summary") |
| 469 | .annotateContext(OpenApi.annotations({ identifier: "listUsers" })) |
| 470 | ) |
| 471 | .add( |
| 472 | HttpApiEndpoint.post("upload")`/upload/${Schema.optional(Schema.String)}` |
| 473 | .setPayload(HttpApiSchema.Multipart(Schema.Struct({ |
| 474 | file: Multipart.SingleFileSchema |
| 475 | }))) |
| 476 | .addSuccess(Schema.Struct({ |
| 477 | contentType: Schema.String, |
| 478 | length: Schema.Int |
| 479 | })) |
| 480 | ) |
| 481 | .add( |
| 482 | HttpApiEndpoint.post("uploadStream")`/uploadstream` |
| 483 | .setPayload(HttpApiSchema.MultipartStream(Schema.Struct({ |
| 484 | file: Multipart.SingleFileSchema |
| 485 | }))) |
| 486 | .addSuccess(Schema.Struct({ |
| 487 | contentType: Schema.String, |
| 488 | length: Schema.Int |
| 489 | })) |
| 490 | ) |
| 491 | .middleware(Authorization) |
| 492 | .annotateContext(OpenApi.annotations({ title: "Users API" })) |
| 493 | {} |
nothing calls this directly
no test coverage detected
searching dependent graphs…