Skip to content

Commit

Permalink
Merge main into zio-series/2.x (#1189)
Browse files Browse the repository at this point in the history
* Doc: Add outline (#815)

* doc: add categories

* refactor: doc structure refactored

* fix: package-lock.json removed

* refactor: create outline sub-directories

* refactor: rename test to testing

* Update netty-all to 4.1.73.Final (#811)

* Disable benchmarks comment on fork pull request (#820)

* Disable benchmarks on fork PR

* run benchmarks on fork PR but disbable PR comment

* Feature: API to modify headers (#824)

* feat(Headers):added new api to update headers

* renamed api

* Feature: Signed Cookie (#751)

* feat(cookie): added secret in cookie

* feat(cookie): added signcookie middleware

* feat(cookie): scalafmt

* fix(cookie): sign cookie while encoding

* scalafmt

* fix(Cookie): added unsign method for cookie

* fix(cookie): minor changes

* fix(signCookieMiddleware: simplified signCookies

* fix(cookie): removed try catch from signContent

* cookie: throw error in verify

* cookie: throw error in verify

* verify method changes

* fixed test cases

* fix: removed decodeResponseSignedCookie

* fix: middlewareSpec

* added modifyheaders in middleware

* removed unwanted changes

* scalafmt

* refactoring

* refactoring

* build fix

* build fix

* fix: decodeResponseCookie

* added modify

* Update sbt-scalafix to 0.9.34 (#805)

* Fix: Echo streaming (#828)

* Failing test

* Fix echo streaming

* Pr Comments

* Docs: Update Basic Examples (#814)

* doc(Getting started): updated examples

* docs: updated basic examples

* docs: update advanced examples (#816)

* maintenance: semanticdb revision usage (#832)

* maintenance: workflow scala version (#833)

* Fix: HasHeader bug (#835)

* #834 - fix and test for the bug.

* applied suggested change

* refactor: fix naming for Http operators (#839)

* Update sbt-bloop to 1.4.12 (#810)

* Update sbt-bloop to 1.4.12

* Update sbt-bloop to 1.4.12

* Update scala-library to 2.13.8 (#801)

* Update scala-library to 2.13.8

* Regenerate workflow with sbt-github-actions

* Add configuration builder methods to zhttp.service.Server (#768)

* Add configuration builder methods to zhttp.service.Server

* Update zio-http/src/main/scala/zhttp/service/Server.scala

Co-authored-by: Tushar Mathur <tusharmath@gmail.com>

* Update zio-http/src/main/scala/zhttp/service/Server.scala

Co-authored-by: Tushar Mathur <tusharmath@gmail.com>

* Update zio-http/src/main/scala/zhttp/service/Server.scala

Co-authored-by: Tushar Mathur <tusharmath@gmail.com>

* Change some server with* builder methods (enable parameter)

* Server withAcceptContinue(enabled)

Co-authored-by: Tushar Mathur <tusharmath@gmail.com>

* maintenance: html template for internal server error string (#851)

Closes #842

* Performance: Improve benchmarking code (#731)

* wip: try server codec without validation

* wip: remove flush consolidator

* wip: use wrapped buffer

* wip: add flush consolidator

* perf: make response encoding checks faster

* use encoder and decoder (#733)

* wip: remove Request creation

* use encoder and decoder

Co-authored-by: Tushar Mathur <tusharmath@gmail.com>

* disable object aggregator

* disable object aggregator

* revert disable object aggregator

* doc: update scala doc

* perf: freeze the HttpResponse

Co-authored-by: Amit Kumar Singh <amit.singh@dream11.com>
Co-authored-by: amitsingh <amitksingh1490@gmail.com>

* Refactor: Support middlewares on Http (#773)

* refactor: remove type-params from Response

* chore: self review

* refactor: rename Middleware to HttpMiddleware

* refactor: add `@@@` to Http as an alternative to `@@`.

* feature: add new Middleware API

* feature: add `flatten` and `ifThenElse`

* feature: add `ifThenElseZIO`

* refactor: fix type params for `identity`

* feature: add `when`

* feature: add `make` constructor

* refactor: make middleware methods final

* refactor: git remains

* refactor: implement HttpMiddleware as Middleware

* scala3 fix

* Refactor CORS middleware (#788)

* Refactor/merge middleware and http middleware (#790)

* Refactor move cors and timeout

* move some httpMiddlewares to Middleware

* move some AuthMiddleware to Middleware

* move remaining AuthMiddleware to Middleware

* move Middlewares to middleware package

* scaladoc

* codec example

* move Middleware to http package

* named alias for `@@`

* rename Auth to AuthMiddlewares

* rename CORSMiddleware to CorsMiddlewares

* rename CSRF to CsrfMiddlewares

* make primitives private

* rename MiddlewareExtensions to HttpMiddlewares

* rename operators in HttpMiddlewares

* scalaDoc

* arg rename

* doc update and general refactor

* simplify cors middleware

* rename CorsConfig

* renames

* Make middlewares package private MiddlewareRequest

* Introduce MiddlewareRequest (#798)

* Introduce MiddlewareRequest

* PR review comments

* Refactor move runAfter to Middleware

* refactor: add `UMiddleware`

* feature: add `contramapZIO`

* refactor: move cors config to Cors file

* refactor: rename files

* refactor: remove AuthSpec from WebSpec

* refactor: fix naming for Http operators

* refactor: add partial type suport for contraMapZIO

* Refactor: Codec (#841)

* Add Run Before (#840)

* Add Run Before

* Add Run Before and After

* use renamed operator

* refactor: add partial type suport for contraMap

* Implement missing operators in Middleware (#807)

* Implement missing operators in Middleware

* fix as operator

* headers Middleware changes

* sign cookie

* extend with HeaderExtensions

* rename suite

* PR comments

* refactor: use `Request` instead of `MiddlewareRequest`

* refactor: rename methods

* refactor: resolve fix me issue

Co-authored-by: amitsingh <amitksingh1490@gmail.com>
Co-authored-by: Amit Kumar Singh <amit.singh@dream11.com>

* refactor: rename ClientParams to ClientRequest (#856)

* refactor: use declarative encoding for http.middleware (#869)

* Move docs to v1.x directory (#861)

* Bug Add host in client from absolute URL (#847)

* feat(Client): Add host in client from absolute URL

* feat(Client): Refactor and add spec for host value

* feat(Client): fmt formatting

* feat(Client): fmt formatting

* feat(Client): use setHeaders from netty

* feat(Client): Add spec for host

* feat(Client): Add spec for host

* feat(Client): Rename clientParams to clientRequest

* Doc website fix (#871)

* Update scala3-library to 3.1.1 (#873)

* Update scala3-library to 3.1.1

* Regenerate workflow with sbt-github-actions

* Doc: Fix getting started link (#874)

* Update scalafmt-core to 3.3.2 (#864)

* Doc: `Headers` documentation (#817)

* doc: add categories

* refactor: doc structure refactored

* fix: package-lock.json removed

* refactor: create outline sub-directories

* initial draft on Headers documentaiton

* refactor: rename test to testing

* migrated Headers doc in the right structure

* re-organized the section. added more examples on the service, client and middleware side.

* updated documentation

* updated based on review

* more updates

* more updates

* minor changes

* minor changes

* Update docs/website/docs/v1.x/dsl/headers/index.md

* Update docs/website/docs/v1.x/dsl/headers/index.md

Co-authored-by: Shubham Girdhar <girdharshubham@hotmail.com>
Co-authored-by: amitsingh <amitksingh1490@gmail.com>
Co-authored-by: Amit Kumar Singh <amit.singh@dream11.com>

* Fix collapsible Headers Doc (#876)

* Test: Added Integration tests for `HExit.Success` (#852)

* feat: added validation app for HExit without zio

* feat: removed type from validationAppSpec

* test: Iterating using HttpGen.Method

* test: rearranged status method params

* test: name fixes

* Update scalafmt-core to 3.3.3 (#881)

* Update scalafmt-core to 3.3.3 (#884)

* Fix: EncodeClientParams (#868)

* fix: encodeClientParams

* test(client): added test for req url string

* test(client): variable name changed

* test: added test in encodeClientSpec

* simplifies test case

* doc: add comment on why relative path needs to be used.

Co-authored-by: Tushar Mathur <tusharmath@gmail.com>

* Refactor: HttpRunnableSpec clean up (#857)

* refactor: reduce HttpRunnableSpec boilerplate

* refactor: remove all helpers from HttpRunnableSpec and inline the method

* doc: update documentation for test module

* refactor: add type-constraints to Http for specialized methods

* refactor: use IsResponse type constraint

* style(*): apply scala fmt

* doc: update documentation

* update doc (#897)

* Docs: Getting started (#887)

* fix: added more content

* fixed comments

* fix: getting started

* modifications

* added more

* minor changes

* minor changes

* changes

* refactor: rename asString to encode in URI (#898)

* refactor: rename asString to encode in Scheme (#904)

* fix: example links (#906)

* Update getting-started.md (#907)

* refactor: rename asString to encode in Scheme (#905)

* Doc: setup (#886)

* doc: setup

* resolve: PR comments

* Update netty-incubator-transport-native-io_uring to 0.0.12.Final (#908)

* Documentation for Server (#885)

* removed config.md and make configurations part of Server page

* added server configurations

* markdwon appearing fine in docusaurus generated page

* added one missing configuration

* Server documentation changed according to PR comments

* change note to tip

Co-authored-by: Sumant Awasthi <sumant.awasthi@D11-Sumant.Awasthi>
Co-authored-by: amitsingh <amitksingh1490@gmail.com>

* Performance: Improve performance of `collectM` (#882)

* Use ZIO response

* fix: improve cancellation performance

* refactor: use sticky server

* refactor: reduce allocations

* revert example

* Doc: Added <> operator in getting started (#910)

* fix: ++ operator doc

* fix: composition

* feature: Add `collectManaged` to Http (#909)

* Add collectManaged

* comment typo

* feature: add `echo` operator to `Socket` (#900)

* feature: add `Socket.empty` (#901)

* feature: add `Socket.empty`

* test: add unit test case for Socket#empty

Co-authored-by: Shubham Girdhar <girdharshubham@hotmail.com>

* feature: add `toHttp` to Socket.scala (#902)

* feature: add `toHttp` to Socket.scala

* test: add unit test for `toApp` to Socket.scala

Co-authored-by: Shubham Girdhar <girdharshubham@hotmail.com>

* refactor: merge Request for Client and Server (#894)

* Revert "refactor: merge Request for Client and Server (#894)" (#915)

This reverts commit fc8b9b5.

* Feature: add `toHttp` to Response (#903)

* feature: add `wrapHttp` to Response

* test: add unit test for wrapHttp in Response.scala

* refactor: operator name changed to `toHttp`

Co-authored-by: Shubham Girdhar <girdharshubham@hotmail.com>

* Update scalafmt-core to 3.4.0 (#920)

* Update sbt to 1.6.2 (#931)

* Remove outdated benchmark.md (#940)

* removed benchmark file

* removed benchmark hyperlink from readme

* refactor: rename `getHeaders` to `headers` in `ClientRequest` (#928)

* refactor: rename `getHeaders` to `headers` in `ClientRequest`

* fix: compiler errors

* fix: compiler errors

* Refactor: rename `asString` to `encode` in `Path` (#927)

* refactor: rename `asString` to `encode` in Path

* fix: compiler errors

* Disable flow Control (#854)

* Add builder pattern for URL (#930)

* Add builder pattern for URL

* Compare encoded value to string literal

* Documentation: Http (#888)

* initial commit for http documentation

* refactor: adding bold formatting for HTTP and resolving review comments

* refactor: Chnage app to application in http documentation

* refactor:fixed review comments

* added combinators section

* style: formatting the code blocks

* added getBodyAsString to http documentation

* added HttpApp section

* fixing typos

* added mapZIO and contamapZIO documentation for http

* provide layer documentation for http

* doc: added a secion- Running an HttpApp

Co-authored-by: Dino John <dinojohn@D11-Dino.John>

* feature: add `Http.apply` (#949)

* Refactor: Drop `toZIO` and `wrapZIO` APIs  (#950)

* feature: add `Http.apply`

* refactor: remove ZIO wrapping APIs

* Fix: Server KeepAlive true by default and enable client to set Http version on requests (#792)

* IT cases for KeepAlive included in ServerConfigSpec

* Allow possibility of modifying server conf in HttpRunnableSpec

* reverted Header.scala

* reverted Header.scala

* reverted Header.scala

* struggling with fmt

* pull latest from main

* reverting changes in ci files

* included review recommendations

* Concise test description

* removed extra comments

* readjusted ServerConfigSpec

* enable keep alive by default; added more test cases for Http 1.0; tweaked test cases and description

* removed configurableServe

* removed unnecessary lines; shorter tests

* reverted Server disabled and some spec changes

* Test/keepalive httpversion (#800)

* make httpVersion first param in request methods

* tweaked test cases even further using requestHeaderValueByName

* changed names

* resolved comments, and more tweaking of test

* deleted extra line

Co-authored-by: Sumant Awasthi <sumant.awasthi@D11-Sumant.Awasthi>

* Renamed ServerConfigSpec to KeepAliveSpec

* made httpVersion first param in ClientParams, made relevant changes

* in EncodeClientParams use http version from ClientParams

* a minor change

* changed server keepAlive = true by default, also rebased with main

Co-authored-by: Sumant Awasthi <sumant.awasthi@D11-Sumant.Awasthi>

* feat: url add `isAbsolute` and `isRelative` operators (#946)

* refactor: add type-params

* feat: url add `isAbsolute` and `isRelative` operators

# Conflicts:
#	zio-http/src/main/scala/zhttp/http/URL.scala

* WebSocket Client Support (#933)

* wip: websocket client support

* test: add unit test for WebSocket using native websocket client

* fix: fromZIO in websocket client spec

* refactor: queue usage simplified

* feat: websocket client support

* refactor: imports optimized

* doc: for ClientSocketHandler

* refactor: bootstrap method

* websocket client with response support

* feat: wss support

* refactor: SocketProtocol

* refactor: add SocketClient
example: add WebSocketSimpleClient

* refactor: SocketProtocol with type evidence
refactor: general clean up

* test: for Scheme

* refactor: rename asString to encode in URI

* refactor: remove example of SecureClient

* refactor: url doesn't need to be part of the protocol. Url can be passed as an additional parameter for now. This simplifies the overall design.

* refactor: socket client for now will take the complete url

* refactor: update client example

* refactor: add `connect` operator to SocketApp

* refactor: use `url` as a string instead of URL type

* refactor: re-order methods

* style(*): apply scala fmt

* revert: unnecessary changes

* feature: add `echo` operator to `Socket`

* refactor: update type info

* feature: add `Socket.empty`

* feature: add `wrapHttp` to Response

* feature: add `toHttp` to Socket.scala

* style(*): apply scala fmt

* refactor: rename asString to encode in Scheme

* refactor: cleanup Scheme changes

* test: update test assertion

* refactor: combine server and client handlers

* refactor: add hint in touch for ClientSocketUpgradeHandler

* refactor: change package for SocketAppHandler

* refactor: rename methods  in SocketProtocol

* fix: add host header and port in Request automatically

* fix: example links (#906)

* Update getting-started.md (#907)

* refactor: rename asString to encode in Scheme (#905)

* Doc: setup (#886)

* doc: setup

* resolve: PR comments

* Update netty-incubator-transport-native-io_uring to 0.0.12.Final (#908)

* Documentation for Server (#885)

* removed config.md and make configurations part of Server page

* added server configurations

* markdwon appearing fine in docusaurus generated page

* added one missing configuration

* Server documentation changed according to PR comments

* change note to tip

Co-authored-by: Sumant Awasthi <sumant.awasthi@D11-Sumant.Awasthi>
Co-authored-by: amitsingh <amitksingh1490@gmail.com>

* Performance: Improve performance of `collectM` (#882)

* Use ZIO response

* fix: improve cancellation performance

* refactor: use sticky server

* refactor: reduce allocations

* revert example

* Doc: Added <> operator in getting started (#910)

* fix: ++ operator doc

* fix: composition

* feature: Add `collectManaged` to Http (#909)

* Add collectManaged

* comment typo

* feature: add `echo` operator to `Socket` (#900)

* feature: add `Socket.empty` (#901)

* feature: add `Socket.empty`

* test: add unit test case for Socket#empty

Co-authored-by: Shubham Girdhar <girdharshubham@hotmail.com>

* refactor: add attribute to Request created by Handler

* refactor: remove "case" from ClientInboundHandler

* refactor: rename to WebSocketAppHandler

* feature: add `toHttp` to Socket.scala (#902)

* feature: add `toHttp` to Socket.scala

* test: add unit test for `toApp` to Socket.scala

Co-authored-by: Shubham Girdhar <girdharshubham@hotmail.com>

* cleaning up residue files

* refactor: rename `asString` to `encode` in Path

* refactor: rename `getHeaders` to `headers` in `ClientRequest`

* refactor: simplify client API

* refactor: update client params encoder

* style: ordering methods in URL.scala

* refactor: ClientRequest will throw if the url is invalid

* refactor: pass URL instead of String in ClientRequest

* test: fix `GetBodyAsStringSpec`

* style(*): apply scala fmt

* refactor: fix invalid url being passed in HttpRunnableSpec

* refactor: Move SSL requirements to ClientAttirbute

* feature: add `scheme` operator on URL

* feature: add `IsWebSocket` and `isSecure` operators on Scheme

* refactor: use named imports in WebSocketAppHandler

* test: fix base url for websockets

* refactor: update how flags are set inside client

* test: add non-zio spec to the spec list

* refactor: fix client test

* style: scalafmt error and remove TODO

* refactor: remove unused handler

* refactor: remove host header changes and RequestSpec (#945)

* refactor: move java scheme generators to SchemeSpec (#944)

* refactor: move java scheme generators to SchemeSpec

* refactor: resolve PR comments

* feat: url add `isAbsolute` and `isRelative` operators

* refactor: rename EncodeClientParams.scala to EncodeClientRequest

* fix: handle errors on client connection

* style(*): apply scala fmt

* refactor: simplify multiple websocket upgrades test (#948)

* refactor: resolve PR comments
style: fmt fix

* refactor: general refactor and style changes

Co-authored-by: Shubham Girdhar <girdharshubham@hotmail.com>
Co-authored-by: Shruti Verma <62893271+ShrutiVerma97@users.noreply.github.com>
Co-authored-by: Amit Kumar Singh <amit.singh@dream11.com>
Co-authored-by: Scala Steward <43047562+scala-steward@users.noreply.github.com>
Co-authored-by: sumawa <awasthi.sumant@gmail.com>
Co-authored-by: Sumant Awasthi <sumant.awasthi@D11-Sumant.Awasthi>
Co-authored-by: amitsingh <amitksingh1490@gmail.com>
Co-authored-by: James Beem <beem132@gmail.com>

* Documentation: Request (#926)

* docs: request

* doc: added client request docs

* added query param section

* doc: refactoring

* WIP

* fix: doc

* fix: doc

* request

* request

* example fixed

* Fix ssl issue due to missing peer host port hint (#952)

* feature: add connect operator on Socket (#955)

* Style: Update scala doc wrapping (#959)

* chore: update scalafmt config

* style(*): apply scala fmt

* remove get prefix (#958)

* Update scalafmt-core to 3.4.1 (#960)

* Update scalafmt-core to 3.4.2 (#962)

* Update scalafmt-core to 3.4.2 (#961)

* remove declarative API (#957)

* Update sbt-updates to 0.6.2 (#966)

* Doc: Readme (#970)

* fix: readme

* changed note

* style: rearrange methods in files (#963)

* Doc: Cookie (#974)

* doc: cookie

* doc: cookie

* cookie: changes

* refactor: drop `CanBeSilent` type-constraint from Http (#964)

* refactor: drop `CanBeSilent` type-constraint from Http

* update usage of `silent` operator

* Feature: add `Version` (#965)

* refactor: rename `asHttpMethod` to `toJava`

* refactor: add `Version` domain

* style(*): apply scala fmt

* Fix: Fire response instead of error in HExit.Failure() (#980)

* Bug fix: fixes #979

* Made changes to nonZIOSpec in ServerSpec to include tests for HExit.Failure()

* fix: typo in bug_report.md (#981)

* Update netty-all to 4.1.74.Final (#982)

* refactor: remove sealed modifier from Middleware trait (#984)

* refactor: rename method on Client (#985)

* fix: request doc (#989)

* Use a Gen of methods without HEAD for Responses with content (#992)

* doc: setup g8 (#988)

* doc: setup g8

* refactor: bump zhttp version

* Doc: for WebSocketFrame (#953)

* doc: for WebSocketFrame

* resolve: PR comments

* resolve: PR comments

* Documentation for HttpData (#987)

* Documentation for HttpData

* added server and client side usage of HttpData

* Update docs/website/docs/v1.x/dsl/http-data/index.md

Co-authored-by: Amit Kumar Singh <amit.singh@dream11.com>

* refactor: rename `provide` and `provideSome` (#996)

* Fix: `Content-Type` header gets incorrect values.  (#899)

* initial work

* Fix tests

* Perf enhancements

* compilation error fix

* rename getContentType

* Update zio-http/src/main/scala/zhttp/http/MediaType.scala

Co-authored-by: Tushar Mathur <tusharmath@gmail.com>

* Make MediaType private, and final.

Co-authored-by: Tushar Mathur <tusharmath@gmail.com>

* Feat: Http from HExit (#986)

* added 2 operators to create http from HExit

* added tests for collectHExit and fromFunctionHExit

* rewrote nonZIO app in serverSpec using collectHExit

* Refactor: Remove Collect and FromFunctionZIO (#1002)

* Refactor: Implemented FromFunctionZIO using FromFunctionHExit

* Refactor: Implement Collect using FromFunctionHExit

* Fix: Binary WebSocketFrame (#1005)

* fix: change binary websocket frame arg to Chunk[Byte] from ByteBuf
Closes #1004

* test: add unit test for binary websocketframe

* style: fix formatting

* feature: add `fromFileZIO` (#1010)

* refactor: `fromFile` uses `fromFileZIO`

* feature: add `Http.fromResource` (#1009)

* Refactor: Content Type Fixes (#1008)

* style: scalafmt fixes

* style: sorting alphabetically

* fix: set conten-type only if not set already

* refactor: make internal fields private

* doc: add todo

* refactor: make caching optional

* refactor: use `Http.fromResource` in test

* refactor: fix test

* doc: fix binary constructor usage (#1014)

* Add data in `Request` trait (#1017)

* maintenance: run scalafmt once (#1027)

* Build(deps): Bump follow-redirects in /docs/website (#1029)

Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.14.7 to 1.14.8.
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](follow-redirects/follow-redirects@v1.14.7...v1.14.8)

---
updated-dependencies:
- dependency-name: follow-redirects
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Update scalafmt-core to 3.4.3 (#1022)

* Remove tuple from ResponseHandler (#1033)

* Remove tuple from ResponseHandler

* cleanup

* restructuring (#1040)

* added more examples (#1038)

* Doc: Response (#967)

* updated with main

* added operators

* revert

* setstatus change

* renaming (#1047)

* Fix: Releasing request twice (#1046)

* refactor: not releasing request

* Added failing test

* optimize path encode method (#1035)

* Feature: Static Server (#1024)

* WIP : static server from file path

* fix CI errrors

* format

* Basic functionalities work without options

* Fix errors on java8

* Fix errors on java8

* Fix refactoring error

* clean up

* Fixig tests

* working around file type detection bug

* Method not allowed.

* Better comments.

* Update zio-http/src/main/scala/zhttp/http/Http.scala

Co-authored-by: Tushar Mathur <tusharmath@gmail.com>

* Refactor

* More tests.

* Fix PR comments

* Moved headers to fromPath

* Update zio-http/src/main/scala/zhttp/http/Http.scala

Co-authored-by: Tushar Mathur <tusharmath@gmail.com>

* Update zio-http/src/main/scala/zhttp/http/Http.scala

Co-authored-by: Tushar Mathur <tusharmath@gmail.com>

* Fixes.

* Fixing tests

* Update zio-http/src/main/scala/zhttp/http/HttpData.scala

Co-authored-by: Tushar Mathur <tusharmath@gmail.com>

* Update zio-http/src/main/scala/zhttp/http/HttpData.scala

Co-authored-by: Tushar Mathur <tusharmath@gmail.com>

* Update zio-http/src/main/scala/zhttp/http/Http.scala

Co-authored-by: Tushar Mathur <tusharmath@gmail.com>

* PR is closed

* Used Http.fromFile in implementation

* Remove unwanted commits

* Fixing compile issues.

* feature: add `withMediaType` operator in HeaderModifier

* refactor: drop `setMediaType` from Response

* refactor: inline file creation

* refactor: simplify implementation for fromFile and fromFileZIO

* doc: add todo comments

* refactor: update listFilesHtml implementation

* refactor: update scaladoc

* test: fix refactored misses

* test: use `+` instead of `,`

* style: scalafmt

* feature: add `mediaType` to HeaderGetters

* feature: add Http.attempt` operator

* refactor: MediaType works on extensions directly

* refactor: add tests for fromResource

* test: StaticFileServerSpec add tests for directory

* refactor: make `fromPath` use `fromFile` internally

* refactor: simplify `fromPath`

* refactor: update scala docs for Http operators

* refactor: fix type info of `Http.response`

* feature: add `listDirectory` operator

* feature: add StyledContainerHtml

* refactor: drop `Util`

* refactor: inline util HTML constructors

* test: add test for invalid file size

* doc: update comments

* style: reorder methods in Http

Co-authored-by: ashprakasan <prakasanaiswarya@gmail.com>

* Revert "Feature: Static Server (#1024)" (#1060)

This reverts commit 33ac08d.

* Performance: Use `CharSequence` for ServerTime (#1064)

* feature: use CharSequence in for ServerTime

* style: scalafmt

* Feature: add `dropLast` to Path (#1065)

* feature: add `dropLast` to Path

* style: scalafmt

* feature: Response.html now supports taking in Status also (#1067)

* feature: add `code` method on Status (#1068)

* refactor: fix type info of `Http.response` (#1073)

* feature: add `foldCause` to HttpError (#1066)

* feature: add `withMediaType` operator in HeaderModifier (#1071)

* Feature: add `Http.attempt` operator (#1070)

* feature: add Http.attempt` operator

* test: add tests for Http.attempt

* feature: add `getResource` and `getResourceAsFile` operators on Http (#1074)

* Update jwt-core to 9.0.4 (#1056)

* Update sbt-bloop to 1.4.13 (#1055)

* Build(deps): Bump url-parse from 1.5.4 to 1.5.7 in /docs/website (#1062)

Bumps [url-parse](https://github.com/unshiftio/url-parse) from 1.5.4 to 1.5.7.
- [Release notes](https://github.com/unshiftio/url-parse/releases)
- [Commits](unshiftio/url-parse@1.5.4...1.5.7)

---
updated-dependencies:
- dependency-name: url-parse
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* feature: add `ifModifiedSinceDecoded` (#1075)

* Feature: Static Server (#1061)

* WIP : static server from file path

* fix CI errrors

* format

* Basic functionalities work without options

* Fix errors on java8

* Fix errors on java8

* Fix refactoring error

* clean up

* Fixig tests

* working around file type detection bug

* Method not allowed.

* Better comments.

* Update zio-http/src/main/scala/zhttp/http/Http.scala

Co-authored-by: Tushar Mathur <tusharmath@gmail.com>

* Refactor

* More tests.

* Fix PR comments

* Moved headers to fromPath

* Update zio-http/src/main/scala/zhttp/http/Http.scala

Co-authored-by: Tushar Mathur <tusharmath@gmail.com>

* Update zio-http/src/main/scala/zhttp/http/Http.scala

Co-authored-by: Tushar Mathur <tusharmath@gmail.com>

* Fixes.

* Fixing tests

* Update zio-http/src/main/scala/zhttp/http/HttpData.scala

Co-authored-by: Tushar Mathur <tusharmath@gmail.com>

* Update zio-http/src/main/scala/zhttp/http/HttpData.scala

Co-authored-by: Tushar Mathur <tusharmath@gmail.com>

* Update zio-http/src/main/scala/zhttp/http/Http.scala

Co-authored-by: Tushar Mathur <tusharmath@gmail.com>

* PR is closed

* Used Http.fromFile in implementation

* Remove unwanted commits

* Fixing compile issues.

* feature: add `withMediaType` operator in HeaderModifier

* refactor: drop `setMediaType` from Response

* refactor: inline file creation

* refactor: simplify implementation for fromFile and fromFileZIO

* doc: add todo comments

* refactor: update listFilesHtml implementation

* refactor: update scaladoc

* test: fix refactored misses

* test: use `+` instead of `,`

* style: scalafmt

* feature: add `mediaType` to HeaderGetters

* feature: add Http.attempt` operator

* refactor: MediaType works on extensions directly

* refactor: add tests for fromResource

* test: StaticFileServerSpec add tests for directory

* refactor: make `fromPath` use `fromFile` internally

* refactor: simplify `fromPath`

* refactor: update scala docs for Http operators

* refactor: fix type info of `Http.response`

* feature: add `listDirectory` operator

* feature: add StyledContainerHtml

* refactor: drop `Util`

* refactor: inline util HTML constructors

* test: add test for invalid file size

* doc: update comments

* style: reorder methods in Http

* refactor: improve style of StyledContainerHtml

* refactor: drop directory support

* refactor: drop directory listing

* refactor: add a color to background

* feature: add `getResource` and `getResourceAsFile` operators on Http

* feature: add `foldCause` to HttpError

* feature: add `code` method on Status

* feature: StyleContainerHtml max-width updated

* feature: Handler uses `HttpError` for empty responses

* feature: Response.html now supports taking in Status also

* feature: beautify Response.fromHttpError

* refactor: rename file to Template

* feature: add `dropLast` to Path

* feature: add `Http.template` operator

* example: update static server example

* style: scalafmt updates

* feature: use CharSequence in for ServerTime

* feature: add `ifModifiedSinceDecoded`

* feature: add `ifModifiedSinceDecoded`

* feature: add `ifModifiedSinceDecoded`

Co-authored-by: ashprakasan <prakasanaiswarya@gmail.com>

* issue 715 Support custom ChannelInitializer (#932)

* doc: socket (#1036)

* doc: socket

* refactor: clean up

* refactor: resolve PR comment

* fix: resolve PR comment and fix typo in `merge`

* feat: added new constructor in http (#1077)

* Feature: Add `when` operator in `Http` (#1078)

* perf: added when operator in http

* build fix

* removed jrequest from constructor

* fmt

* unsafeEncode: HttpRequest

* added when primitive

* refactor: rename `whenPath` to `whenPathEq`

Co-authored-by: Tushar Mathur <tusharmath@gmail.com>

* Feature: Effectful Auth Middleware (#1079)

* added effectful athu middlewares

* added tests

* refactor: stopped calling tuple of credentials as Header

* added credentials

* Test: Server Settings Support in `HttpRunnableSpec#serve` (#1053)

* feat: server settings support in HttpRunnableSpec#serve

* resolve: PR comments

* refactor: website docs sidebar pages repositioned (#1049)

* Feat: Server Request Decompression (#1095)

* feat: server request decompression

* test: add test for deflate

* Feature: Added helper checkers to `Status` class (#1058)

* Added helper checkers to Status class

* For status, formatted, removed  and made them def

Co-authored-by: Roberto Leibman <rleibman@demandbase.com>

* Build(deps): Bump prismjs from 1.26.0 to 1.27.0 in /docs/website (#1100)

Bumps [prismjs](https://github.com/PrismJS/prism) from 1.26.0 to 1.27.0.
- [Release notes](https://github.com/PrismJS/prism/releases)
- [Changelog](https://github.com/PrismJS/prism/blob/master/CHANGELOG.md)
- [Commits](PrismJS/prism@v1.26.0...v1.27.0)

---
updated-dependencies:
- dependency-name: prismjs
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Build(deps): Bump url-parse from 1.5.7 to 1.5.10 in /docs/website (#1103)

Bumps [url-parse](https://github.com/unshiftio/url-parse) from 1.5.7 to 1.5.10.
- [Release notes](https://github.com/unshiftio/url-parse/releases)
- [Commits](unshiftio/url-parse@1.5.7...1.5.10)

---
updated-dependencies:
- dependency-name: url-parse
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* added try catch in handler to catch throwable apps (#1099)

* removed flatten from test (#1109)

* Feature: Request Streaming (#1048)

* introduce `Incoming` and `Outgoing` inHttpData

* streaming support

* benchmark disable objectAggregator

* cleanup

* refactor

* cleanup + PR comments

* cleanup + PR comments

* cleanup + PR comments

* refactor: rename variable

* memory leak

* refactor: Handler now extends ChannelInboundHandlerAdapter

* refactor: remove unused methods from UnsafeChannel

* remove bodyAsCharSequenceStream operator

* refactor: remove unnecessary methods on HttpData

* refactor: re-implement `bodyAsStream`

* refactor: remove unsafe modification of pipeline from HttpData

* refactor: rename HttpData types

* fix 2.12 build

* refactor: remove type param

* PR comment

* PR comment

* refaector: simplify releaseRequest

* refactor: reorder methods in ServerResponseHandler

* refactor: make methods final

* refactor: rename HttpData traits

* add `bodyAsByteArray` and derive `body` and `bodyAsString` from it.

* add test: should throw error for HttpData.Incoming

* Introduce `useAggregator` method on settings and use it everywhere

* remove sharable from `ServerResponseHandler`

* Update zio-http/src/main/scala/zhttp/http/Request.scala

* refactor: remove unnecessary pattern matching

* throw exception on unknown message type

* simplify test

* refactor: change order of ContentHandler. Move it before the RequestHandler

* test: update test structure

* refactor: move pattern match logic to WebSocketUpgrade

* revert addBefore Change because of degrade in performance (#1089)

* fix static server issue with streaming

* take case of auto read if body is not used

* autoRead when needed

* Update zio-http/src/main/scala/zhttp/service/RequestBodyHandler.scala

* Update zio-http/src/main/scala/zhttp/http/Response.scala

* Update zio-http/src/main/scala/zhttp/http/Response.scala

* remove test which is not used

* Update zio-http/src/main/scala/zhttp/service/Handler.scala

Co-authored-by: Shrey Mehta <36622672+smehta91@users.noreply.github.com>

* Update zio-http/src/main/scala/zhttp/service/Handler.scala

Co-authored-by: Shrey Mehta <36622672+smehta91@users.noreply.github.com>

* style: fmt

* exclude Head in 404 check

Co-authored-by: Tushar Mathur <tusharmath@gmail.com>
Co-authored-by: Shrey Mehta <36622672+smehta91@users.noreply.github.com>

* Fix toByteBuf for streamed HttpData (#1118)

* Fix toByteBuf for streamed HttpData

* example: more secure string compare for login (#1120)

* Feature: Introduced defect channel for `Http` (#1083)

* Introduced defect channel for Http and added helpful combinators for error handling

* Reformat code

* Removed doubtful combinator Http.run

* Simplified implementation of catchNonFatalOrDie

* Simplified implementation of catchSome

* Guarded Http.execute() with try-catch block in order to convert unexpectable exceptions to defects

* Added test to check Http.catchSomeDefect catches throws defects

* Fixed warnings about shadowing type parameters

* Fix: fold over defect cause

* Formatted HttpSpec.scala

* Perf: catch defects only where they may occur

* Fmt

Co-authored-by: Nikolay Artamonov <n.artamonov@sigma-it.ru>

* Enhancement: Merge server and client Responses (#1111)

* Merge client and server Request

* Remove IsResponse

* rename getBodyAsString => bodyAsString in doc (#1124)

* removed links from scaladoc (#1127)

* Feature: Add `version` to `Request` (#1094)

* introduce `Incoming` and `Outgoing` inHttpData

* streaming support

* benchmark disable objectAggregator

* cleanup

* refactor

* cleanup + PR comments

* cleanup + PR comments

* cleanup + PR comments

* refactor: rename variable

* memory leak

* refactor: Handler now extends ChannelInboundHandlerAdapter

* refactor: remove unused methods from UnsafeChannel

* remove bodyAsCharSequenceStream operator

* refactor: remove unnecessary methods on HttpData

* refactor: re-implement `bodyAsStream`

* refactor: remove unsafe modification of pipeline from HttpData

* refactor: rename HttpData types

* fix 2.12 build

* refactor: remove type param

* PR comment

* PR comment

* refaector: simplify releaseRequest

* refactor: reorder methods in ServerResponseHandler

* refactor: make methods final

* refactor: rename HttpData traits

* add `bodyAsByteArray` and derive `body` and `bodyAsString` from it.

* add test: should throw error for HttpData.Incoming

* Introduce `useAggregator` method on settings and use it everywhere

* remove sharable from `ServerResponseHandler`

* Update zio-http/src/main/scala/zhttp/http/Request.scala

* refactor: remove unnecessary pattern matching

* throw exception on unknown message type

* simplify test

* refactor: change order of ContentHandler. Move it before the RequestHandler

* test: update test structure

* refactor: move pattern match logic to WebSocketUpgrade

* revert addBefore Change because of degrade in performance (#1089)

* fix static server issue with streaming

* Introduce version in Request

* Delete `Request.make`

* add missing scaladoc

Co-authored-by: Tushar Mathur <tusharmath@gmail.com>

* Refactor: Merge client and server `Request` (#1125)

* introduce `Incoming` and `Outgoing` inHttpData

* streaming support

* benchmark disable objectAggregator

* cleanup

* refactor

* cleanup + PR comments

* cleanup + PR comments

* cleanup + PR comments

* refactor: rename variable

* memory leak

* refactor: Handler now extends ChannelInboundHandlerAdapter

* refactor: remove unused methods from UnsafeChannel

* remove bodyAsCharSequenceStream operator

* refactor: remove unnecessary methods on HttpData

* refactor: re-implement `bodyAsStream`

* refactor: remove unsafe modification of pipeline from HttpData

* refactor: rename HttpData types

* fix 2.12 build

* refactor: remove type param

* PR comment

* PR comment

* refaector: simplify releaseRequest

* refactor: reorder methods in ServerResponseHandler

* refactor: make methods final

* refactor: rename HttpData traits

* add `bodyAsByteArray` and derive `body` and `bodyAsString` from it.

* add test: should throw error for HttpData.Incoming

* Introduce `useAggregator` method on settings and use it everywhere

* remove sharable from `ServerResponseHandler`

* Update zio-http/src/main/scala/zhttp/http/Request.scala

* refactor: remove unnecessary pattern matching

* throw exception on unknown message type

* simplify test

* refactor: change order of ContentHandler. Move it before the RequestHandler

* test: update test structure

* refactor: move pattern match logic to WebSocketUpgrade

* revert addBefore Change because of degrade in performance (#1089)

* fix static server issue with streaming

* Introduce version in Request

* Merge Client and Server Request

* Delete `Request.make`

* Gen refactor

* rename files

* make function private

* rename attribute

* rename attribute

Co-authored-by: Tushar Mathur <tusharmath@gmail.com>

* Refactor: Http.Status names to Camel Case (#1129)

* support custom Status for HtppError

* support custom Status for HttpError

* updated code based on review.

* fixed tests

* changed from Capitalized Status names to Camel Case

* proper camel case usage

Co-authored-by: Gabriel Ciuloaica <con_gabriel.ciuloaica@dream11.com>

* Feature: Support Custom statuses code (#1121)

* support custom Status for HtppError

* support custom Status for HttpError

* updated code based on review.

* fixed tests

* Refactor: Http.Status names to Camel Case (#1128)

* changed from Capitalized Status names to Camel Case

* proper camel case usage

* Update zio-http/src/main/scala/zhttp/http/HttpError.scala

Co-authored-by: Tushar Mathur <tusharmath@gmail.com>

* fixed after conflict

* updated tests

Co-authored-by: Tushar Mathur <tusharmath@gmail.com>

* Enhancement: Added combine operator (#1106)

* enhancement: added combine operator

* added test cases with three apps

* refactor: plaintextBenchmarkServer

* test case updated

* removed flatten from test

* test case updated

* added test for collectHttp

* simplified tests

* added failing test

* fixed test

* refactor: cleaning up the execute method in Http

Co-authored-by: Tushar Mathur <tusharmath@gmail.com>

* Refactor: Added lift in PartialCollect (#1105)

* refactor: added lift in partialCollect

* added text in path

* refactor: reduce iterations of benchmarks

Co-authored-by: Tushar Mathur <tusharmath@gmail.com>

* Feature: Bearer auth middleware (#1097)

* added header constructor for bearer authorization

* added jwt auth middlewares

* updated the Auth examples

* added tests

* renamed the auth middleware from jwt to barer

* refactor: example AuthenticationClient

* added scala doc for examples, renamed variables in tests

Co-authored-by: Shubham Girdhar <girdharshubham@hotmail.com>
Co-authored-by: amitsingh <amitksingh1490@gmail.com>

* Update netty-all to 4.1.75.Final (#1130)

* Refactor: `Request` and `Response` to extend `HttpDataExtension` (#1112)

* Request Streaming Example

* refactor: add HttpDataExtension

* doc: add documentation

* fix: compiler errors

Co-authored-by: Tushar Mathur <tusharmath@gmail.com>

* Refactor: Make `Http.getResource` consistent with `ZStream.fromResource` (#1113)

* Fix `Http.getResource`

Code based on https://github.com/zio/zio/blob/v1.0.13/streams/jvm/src/main/scala/zio/stream/platform.scala#L385-L398

* Improve `File` creation lazyness: The `File` instance will be created much later in the pipe

* Fix tests

* Fix tests

* Update zio-http/src/main/scala/zhttp/http/Http.scala

Co-authored-by: Tushar Mathur <tusharmath@gmail.com>

* Remove `Blocking` from the type signature as requested

Co-authored-by: Tushar Mathur <tusharmath@gmail.com>

* Update netty-incubator-transport-native-io_uring to 0.0.13.Final (#1133)

* Add more useful toString method for Request (#995)

* Add more useful toString method for Request

* Fmt

* Moved toString to Request trait

* Added a few tests of Request.toString

* Fmt

* Improved tests for Request.toString

* Added Scala doc for Request.toString

* Added protocol version to a string representation of Request

* Fmt

* fix(request): fix scala doc (#1138)

* Performance: Improve HttpData toByteBuf (#1137)

* refactor: add blocking layer for file based constructors

* refactor: use JavaFile instead of RandomAccessFile

* doc: fix StaticServer example

* style: scalafmt

* refactor: clean up HttpData

* refactor: remove blocking

* refactor: remove unnecessary overload in ResponseHandler

* test: add timeout and use ByteBufConfig to control encoding

* refactor: add ByteBufConfig

* refactor: rename types internally

* style: fmt

Co-authored-by: amitsingh <amitksingh1490@gmail.com>

* Fix: Handle HttpClient Interruption on connection close (#1039)

* the promise has to be uninteruptible to avoid loosing the response message in case the netty chanel is getting closed due to a unhandled exception

* added a note about reasons why the promise is made uninterruptible.

* New chapter: efficient development process (#1145)

The dream11 gitter template already contains the most important sbt plugins to setup an efficient development process. To guide newcomers to zio-http, the newely added chapter gives an introduction on their purpose and how to use them.

* do not watch reStop (#1146)

Removed the tilde (~)  before reStop, as it is not helpful to run this in watch-mode

* Feature: add `Middleware.codecHttp` (#1141)

* feature: add codecHttp

* feature: add `codecMiddleware` to Http

* added tests

Co-authored-by: shrutiverma97 <shruti@dream11.com>

* Performance: Use `CharSequence` internally wherever possible (#1142)

* refactor: add blocking layer for file based constructors

* refactor: use JavaFile instead of RandomAccessFile

* doc: fix StaticServer example

* style: scalafmt

* refactor: clean up HttpData

* refactor: remove blocking

* refactor: remove unnecessary overload in ResponseHandler

* test: add timeout and use ByteBufConfig to control encoding

* refactor: add ByteBufConfig

* performance: use `AsciiString` inside of HttpData

* performance: use CharSequence in `Http.template` and `Http.text`

* performance: use `CharSequence` in Response.json, Response.text and Response.redirect

* performance: use `CharSequence` in Html templates

* refactor: add `bodyAsCharSequence` to HttpDataExtension

* Update scala-collection-compat to 2.7.0 (#1154)

* Update jwt-core to 9.0.5 (#1150)

* feature: add `narrow` operator to Http (#1161)

* feature: add `toHttp` method to `Response` (#1160)

* refactor: DynamicServer is not bound to HttpEnv only (#1159)

* fix: Socket.end implementation (#1158)

* Update sbt-scala3-migrate to 0.5.1 (#1163)

* Fix: update implementation of `FromAsciiString.encode` (#1175)

* fix: update implementation of `FromAsciiString.encode`

* Add test for toHttp FromASCIIString

Co-authored-by: amitsingh <amitksingh1490@gmail.com>

* Build(deps): Bump minimist from 1.2.5 to 1.2.6 in /docs/website (#1172)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](https://github.com/substack/minimist/compare/1.2.5...1.2.6)

---
updated-dependencies:
- dependency-name: minimist
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Added missing period (#1186)

Co-authored-by: Shubham Girdhar <girdharshubham@hotmail.com>
Co-authored-by: Amit Kumar Singh <amit.singh@dream11.com>
Co-authored-by: Shruti Verma <62893271+ShrutiVerma97@users.noreply.github.com>
Co-authored-by: Gabriel Ciuloaica <95849448+gciuloaica@users.noreply.github.com>
Co-authored-by: Tushar Mathur <tushar@dream11.com>
Co-authored-by: Javier Goday <jgoday@gmail.com>
Co-authored-by: Tushar Mathur <tusharmath@gmail.com>
Co-authored-by: amitsingh <amitksingh1490@gmail.com>
Co-authored-by: Brendan McKee <brendan.mckee@outlook.com>
Co-authored-by: kaushik143 <kaushik@dream11.com>
Co-authored-by: zsfVishnu-d11 <66246684+zsfVishnu-d11@users.noreply.github.com>
Co-authored-by: Scala Steward <43047562+scala-steward@users.noreply.github.com>
Co-authored-by: sumawa <awasthi.sumant@gmail.com>
Co-authored-by: Sumant Awasthi <sumant.awasthi@D11-Sumant.Awasthi>
Co-authored-by: James Beem <beem132@gmail.com>
Co-authored-by: Dino Babu John <66246799+dinojohn@users.noreply.github.com>
Co-authored-by: Dino John <dinojohn@D11-Dino.John>
Co-authored-by: AshPrakasan <prakasanaiswarya@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: RAJKUMAR NATARAJAN <raj.cs.psg@gmail.com>
Co-authored-by: Roberto Leibman <roberto@leibman.net>
Co-authored-by: Roberto Leibman <rleibman@demandbase.com>
Co-authored-by: Shrey Mehta <36622672+smehta91@users.noreply.github.com>
Co-authored-by: ex0ns <ex0ns@users.noreply.github.com>
Co-authored-by: Guillaume Massé <masgui@gmail.com>
Co-authored-by: Nikolay Artamonov <nartamonov@gmail.com>
Co-authored-by: Nikolay Artamonov <n.artamonov@sigma-it.ru>
Co-authored-by: Gabriel Ciuloaica <con_gabriel.ciuloaica@dream11.com>
Co-authored-by: Jules Ivanic <guizmaii@users.noreply.github.com>
Co-authored-by: Dani Rey <dani.rey.ch@gmail.com>
Co-authored-by: shrutiverma97 <shruti@dream11.com>
Co-authored-by: Olive Iosello <67493878+oliveiosello@users.noreply.github.com>
  • Loading branch information
1 parent a320cca commit 6bed62d
Show file tree
Hide file tree
Showing 17 changed files with 50 additions and 37 deletions.
2 changes: 1 addition & 1 deletion docs/website/docs/v1.x/dsl/headers.md
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,7 @@ val responseHeaders: Task[Headers] = Client.request(url).map(_.headers)
_ <- Console.printLine { data }
} yield ()

override def run(args: List[String]): URIO[Any, ExitCode] = program.exitCode.provideLayer(env)
override def run(args: List[String]): UIO[ExitCode] = program.exitCode.provideLayer(env)

}
```
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import zhttp.http._
import zhttp.service.Server
import zio.{App, ExitCode, URIO}

object BasicAuth extends App {
object BasicAuth extends ZIOAppDefault {

// Http app that requires a JWT claim
val user: UHttpApp = Http.collect[Request] { case Method.GET -> !! / "user" / name / "greet" =>
Expand All @@ -19,8 +19,8 @@ object BasicAuth extends App {
val app: UHttpApp = user @@ basicAuth("admin", "admin")

// Run it like any simple app
override def run(args: List[String]): UIO[ExitCode] =
Server.start(8090, app).exitCode
override val run =
Server.start(8090, app)
}

```
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import zhttp.http._
import zhttp.service.Server
import zio._

object HelloWorldWithCORS extends App {
object HelloWorldWithCORS extends ZIOAppDefault {
// Create CORS configuration
val config: CORSConfig =
CORSConfig(allowedOrigins = _ == "dev", allowedMethods = Some(Set(Method.PUT, Method.DELETE)))
Expand All @@ -18,7 +18,7 @@ object HelloWorldWithCORS extends App {
} @@ cors(config)

// Run it like any simple app
override def run(args: List[String]): UIO[ExitCode] =
Server.start(8090, app.silent).exitCode
override val run =
Server.start(8090, app.silent)
}
```
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ object CSRF extends App {
} @@ csrfGenerate() // set x-csrf token cookie

val app = publicApp ++ privateApp
override def run(args: List[String]): UIO[ExitCode] =
Server.start(8090, app).exitCode
override val run =
Server.start(8090, app)
}

```
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import zio._
import java.io.File
import java.nio.file.Paths

object FileStreaming extends App {
object FileStreaming extends ZIOAppDefault {

// Create HTTP route
val app = Http.collectHttp[Request] {
Expand All @@ -26,8 +26,8 @@ object FileStreaming extends App {
}

// Run it like any simple app
override def run(args: List[String]): UIO[ExitCode] =
Server.start(8090, app.silent).exitCode
override val run =
Server.start(8090, app.silent)
}

```
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,10 @@ import zio._
/**
* Example to encode content using a ZStream
*/
object StreamingResponse extends App {
override def run(args: List[String]): UIO[ExitCode] = {

object StreamingResponse extends ZIOAppDefault {
override val run =
// Starting the server (for more advanced startup configuration checkout `HelloWorldAdvanced`)
Server.start(8090, app.silent).exitCode
}
Server.start(8090, app.silent)

// Create a message as a Chunk[Byte]
val message = Chunk.fromArray("Hello world !\r\n".getBytes(HTTP_CHARSET))
Expand Down
10 changes: 5 additions & 5 deletions docs/website/docs/v1.x/getting-started.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ An app can be made using any of the available constructors on `zhttp.Http`.

### Routing

For handling routes, Http Domain has a `collect` method that, accepts different requests and produces responses. Pattern matching on the route is supported by the framework
For handling routes, Http Domain has a `collect` method that, accepts different requests and produces responses. Pattern matching on the route is supported by the framework.
The example below shows how to create routes:

```scala
Expand Down Expand Up @@ -108,7 +108,7 @@ import zhttp.http._
object Spec extends ZIOSpecDefault {

def spec = suite("http")(
testM("should be ok") {
test("should be ok") {
val app = Http.ok
val req = Request()
assertM(app(req))(equalTo(Response.ok))
Expand Down Expand Up @@ -156,11 +156,11 @@ import zhttp.http._
import zhttp.service.Server
import zio._

object HelloWorld extends App {
object HelloWorld extends ZIOAppDefault {
val app = Http.ok

override def run(args: List[String]): URIO[Any, ExitCode] =
Server.start(8090, app).exitCode
override val run =
Server.start(8090, app)
}
```

Expand Down
6 changes: 3 additions & 3 deletions docs/website/yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -5731,9 +5731,9 @@ minimatch@3.0.4, minimatch@^3.0.4:
brace-expansion "^1.1.7"

minimist@^1.2.0, minimist@^1.2.5:
version "1.2.5"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
version "1.2.6"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44"
integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==

mixin-deep@^1.2.0:
version "1.3.2"
Expand Down
6 changes: 3 additions & 3 deletions example/src/main/scala/example/AuthenticationClient.scala
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package example

import zhttp.http.Headers
import zhttp.service.{ChannelFactory, Client, EventLoopGroup}
import zio.{ExitCode, UIO, ZIOAppDefault}
import zio._

object AuthenticationClient extends ZIOAppDefault {

Expand All @@ -20,9 +20,9 @@ object AuthenticationClient extends ZIOAppDefault {
// Once the jwt token is procured, adding it as a Barer token in Authorization header while accessing a protected route.
response <- Client.request(s"${url}/user/userName/greet", headers = Headers.bearerAuthorizationHeader(token))
body <- response.bodyAsString
_ <- zio.Console.printLine(body)
_ <- Console.printLine(body)
} yield ()

val run: UIO[ExitCode] = program.exitCode.provideLayer(env)
override val run = program.provideLayer(env)

}
6 changes: 3 additions & 3 deletions example/src/main/scala/example/AuthenticationServer.scala
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import pdi.jwt.{Jwt, JwtAlgorithm, JwtClaim}
import zhttp.http.Middleware.bearerAuth
import zhttp.http._
import zhttp.service.Server
import zio.{ExitCode, UIO, ZIOAppDefault}
import zio.{Clock => _, _}

import java.time.Clock

Expand Down Expand Up @@ -52,6 +52,6 @@ object AuthenticationServer extends ZIOAppDefault {
val app: UHttpApp = login ++ user

// Run it like any simple app
val run: UIO[ExitCode] =
Server.start(8090, app).exitCode
override val run =
Server.start(8090, app)
}
2 changes: 1 addition & 1 deletion example/src/main/scala/example/StaticServer.scala
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ object StaticServer extends ZIOAppDefault {
// A simple app to serve static resource files from a local directory.
val app = Http.collectHttp[Request] { case Method.GET -> "static" /: path =>
for {
file <- Http.getResourceAsFile(path.encode)
file <- Http.getResourceAsFile(path.encode.tail)
http <-
// Rendering a custom UI to list all the files in the directory
if (file.isDirectory) {
Expand Down
2 changes: 1 addition & 1 deletion project/Dependencies.scala
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import sbt._

object Dependencies {
val JwtCoreVersion = "9.0.4"
val JwtCoreVersion = "9.0.5"
val NettyVersion = "4.1.75.Final"
val NettyIncubatorVersion = "0.0.13.Final"
val ScalaCompactCollectionVersion = "2.7.0"
Expand Down
2 changes: 1 addition & 1 deletion zio-http/src/main/scala/zhttp/http/HttpData.scala
Original file line number Diff line number Diff line change
Expand Up @@ -200,7 +200,7 @@ object HttpData {

private[zhttp] final case class BinaryChunk(data: Chunk[Byte]) extends Complete {

private def encode = Unpooled.wrappedBuffer(data.toArray)
private def encode: ByteBuf = Unpooled.wrappedBuffer(data.toArray)

/**
* Encodes the HttpData into a ByteBuf.
Expand Down
2 changes: 1 addition & 1 deletion zio-http/src/main/scala/zhttp/http/middleware/Auth.scala
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import io.netty.handler.codec.http.HttpHeaderNames
import zhttp.http.Headers.{BasicSchemeName, BearerSchemeName}
import zhttp.http._
import zhttp.http.middleware.Auth.Credentials
import zio.ZIO
import zio._

private[zhttp] trait Auth {

Expand Down
2 changes: 1 addition & 1 deletion zio-http/src/main/scala/zhttp/socket/Socket.scala
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ object Socket {
*/
def empty: Socket[Any, Nothing, Any, Nothing] = Socket.Empty

def end: ZStream[Any, Nothing, Nothing] = ZStream.failCause(Cause.empty)
def end: Socket[Any, Nothing, Any, Nothing] = Socket.End

def fromFunction[A]: PartialFromFunction[A] = new PartialFromFunction[A](())

Expand Down
2 changes: 1 addition & 1 deletion zio-http/src/test/scala/zhttp/http/ContentTypeSpec.scala
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@ package zhttp.http
import zhttp.internal.{DynamicServer, HttpRunnableSpec}
import zhttp.service.server.ServerChannelFactory
import zhttp.service.{ChannelFactory, EventLoopGroup}
import zio._
import zio.test.Assertion.{equalTo, isNone, isSome}
import zio.test.TestAspect.timeout
import zio.test.assertM
import zio.{Scope, durationInt}

object ContentTypeSpec extends HttpRunnableSpec {

Expand Down
15 changes: 15 additions & 0 deletions zio-http/src/test/scala/zhttp/service/ServerSpec.scala
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,21 @@ object ServerSpec extends HttpRunnableSpec {
assertM(res)(isSome(anything))
}
} +
suite("die") {
val app = Http.die(new Error("SERVER_ERROR"))
test("status is 500") {
val res = app.deploy.status.run()
assertM(res)(equalTo(Status.InternalServerError))
} +
test("content is set") {
val res = app.deploy.bodyAsString.run()
assertM(res)(containsString("SERVER_ERROR"))
} +
test("header is set") {
val res = app.deploy.headerValue(HeaderNames.contentLength).run()
assertM(res)(isSome(anything))
}
} +
suite("echo content") {
val app = Http.collectZIO[Request] { case req =>
req.bodyAsString.map(text => Response.text(text))
Expand Down

0 comments on commit 6bed62d

Please sign in to comment.