MCPcopy
hub / github.com/Effect-TS/effect / UsersApi

Class UsersApi

packages/platform-node/test/HttpApi.test.ts:436–493  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

434{}
435
436class 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{}

Callers

nothing calls this directly

Calls 14

addSuccessMethod · 0.80
setUrlParamsMethod · 0.80
setHeadersMethod · 0.80
annotateContextMethod · 0.65
middlewareMethod · 0.65
addMethod · 0.65
makeMethod · 0.65
getMethod · 0.65
addErrorMethod · 0.65
setPayloadMethod · 0.65
omitMethod · 0.65
annotateMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…