Commit Graph

263 Commits

Author SHA1 Message Date
Nicholas Rempel 427db7a1eb Add test case for empty queue poll response 2022-01-06 19:22:20 +08:00
Nicholas Rempel 569bd86bae Add HostInfoResponseData to list of support message poll response types 2022-01-06 19:22:20 +08:00
Nicholas Rempel 4f112469ce Re-use DomainTransferResponseData in message poll 2022-01-06 19:22:20 +08:00
Dirkjan Ochtman 24356a722a Re-export command types for easier access 2022-01-03 10:29:58 +08:00
Dirkjan Ochtman e9c5db9a1c Add basic test for high-level API 2022-01-03 10:22:20 +08:00
Dirkjan Ochtman 0cd3e28b22 Use get_epp_response() to read initial greeting 2022-01-03 10:22:20 +08:00
Dirkjan Ochtman 8efb206e43 Rename test directory to tests 2022-01-03 10:22:20 +08:00
Dirkjan Ochtman 70f3789098 Make tokio-rustls dependency optional 2022-01-03 10:22:20 +08:00
Dirkjan Ochtman 0db2c6d008 Abstract EppClient over stream type 2022-01-03 10:22:20 +08:00
Dirkjan Ochtman 44f3fbef53 Move responsibility for stream setup into client 2022-01-03 10:22:20 +08:00
Dirkjan Ochtman d69439ff24 Abstract EppConnection over stream type 2022-01-03 10:22:20 +08:00
Dirkjan Ochtman 3d0c3166f3 More concise/consistent error messages 2021-12-27 15:29:09 +08:00
Dirkjan Ochtman 978e43a4c1 Consistently return Error type 2021-12-27 15:29:09 +08:00
Dirkjan Ochtman abab1aca8c Store richer Box<dyn StdError> in Error::Other 2021-12-27 15:29:09 +08:00
Dirkjan Ochtman 6d063804d3 Use consistent naming for error types 2021-12-27 15:29:09 +08:00
Dirkjan Ochtman 467ac03df7 Preserve quick-xml errors 2021-12-27 15:29:09 +08:00
Dirkjan Ochtman 78628cfc02 Rename Error variants to avoid stuttering 2021-12-27 15:29:09 +08:00
Dirkjan Ochtman 2193c10290 Remove unused impl 2021-12-27 15:29:09 +08:00
Dirkjan Ochtman b7b6d0ae00 Remove unused type 2021-12-27 15:29:09 +08:00
Ritesh Chitlangi d5d3a93141 fix impl lifetimes 2021-12-21 00:14:38 +08:00
Ritesh Chitlangi 537fe10bee minor fixes 2021-12-21 00:05:12 +08:00
Nick Rempel 6445b63c62 Add sync namestore composite extension 2021-12-20 22:19:57 +08:00
Dirkjan Ochtman 17d5bd90e9 Use &str or Cow<'a, str> in place of String 2021-12-20 22:08:55 +08:00
Dirkjan Ochtman 99701608a2 Replace Vec with slice where possible 2021-12-20 22:08:55 +08:00
Dirkjan Ochtman d4f4949cd8 Store a Cow<'a, str> in StringValue
And parametrize all serialize-only types with a lifetime such that
building requests no longer requires unnecessary allocations.
2021-12-20 22:08:55 +08:00
Dirkjan Ochtman 1efe19000e Deduplicate DomainTransfer constructor methods 2021-12-20 22:08:55 +08:00
Dirkjan Ochtman a5f57fa836 Use &'static str for namespace URLs in serialize types 2021-12-20 22:08:55 +08:00
Dirkjan Ochtman b0595511e4 Remove unnecessary Deserialize/Serialize derives 2021-12-20 22:08:55 +08:00
Dirkjan Ochtman 5664276133 Remove serde aliases from types that don't implement Deserialize 2021-12-20 22:08:55 +08:00
Dirkjan Ochtman 3935413b70 Move contact-related types from common to contact 2021-12-15 23:40:56 +08:00
Dirkjan Ochtman 93f8e0e8c8 Remove type aliases for ContactStatus 2021-12-15 23:40:56 +08:00
Dirkjan Ochtman 95e21eb9ea Reinstate contact module as a separate file 2021-12-15 23:40:56 +08:00
Dirkjan Ochtman defd7cff9b Move domain-related types from common to domain 2021-12-15 23:40:56 +08:00
Dirkjan Ochtman 2ac3a6398d Remove unused type 2021-12-15 23:40:56 +08:00
Dirkjan Ochtman ae0a6589a9 Reinstate domain module as a separate file 2021-12-15 23:40:56 +08:00
Nick Rempel b8e47fce4b exDate should always be optional 2021-12-14 23:20:19 +08:00
Dirkjan Ochtman 62645eec96 Minimize configuration interface API 2021-12-14 23:12:28 +08:00
Dirkjan Ochtman 375a151851 Use PathBuf type to clarify usage of paths 2021-12-14 23:12:28 +08:00
Dirkjan Ochtman 79c69dfd1f Privatize EppConnection type 2021-12-14 23:12:28 +08:00
Dirkjan Ochtman 7772b302af Add shutdown() method in EppClient interface 2021-12-14 23:12:28 +08:00
Dirkjan Ochtman 0ac766e848 Rename registry module to connection 2021-12-14 23:12:28 +08:00
Dirkjan Ochtman 4f111fa8fe Make connection setup a part of EppConnection interface 2021-12-14 23:12:28 +08:00
Dirkjan Ochtman 6695a20a18 Remove now unnecessary workspace 2021-12-13 00:19:03 +08:00
Dirkjan Ochtman 6478cff2e0 Drop ElementName trait and macros crate 2021-12-13 00:19:03 +08:00
Nicholas Rempel 99f90f3c08 Complete Transaction impl coverage for NameStore extension 2021-12-13 00:19:03 +08:00
Dirkjan Ochtman 8490eefc59 Distribute serialization tests over command modules 2021-12-13 00:19:03 +08:00
Dirkjan Ochtman cf44a81991 Distribute deserialization tests over command modules 2021-12-13 00:19:03 +08:00
Dirkjan Ochtman d34c94ee9f Make Transaction trait more flexible
Instead of separate types implementing the `Transaction` trait,
here we implement `Transaction` for a command type.

The definition of the `Transaction` trait ensures that:

* Implementations for commands with a particular extension
  must be explicitly defined (that is, you can't just call
  `transact()` with a random combination of a command type
  and an extension type).
* The combination of the command type and the extension type
  (via the `Transaction` impl) defines the response type
  (both the command response and the extension response).

This definition means that:

* `Transaction` implementations for commands defined within
  the epp-client crate that want to use an extension defined
  within the crate must have an impl local to the crate.
* `Transaction` impls defined for commands foreign to the
  epp-client crate as well as impls defined with extensions
  foreign to the crate can have an impl in their defining crate.
2021-12-13 00:19:03 +08:00
Dirkjan Ochtman 38d4391e43 Remove overly duplicative doctests 2021-12-13 00:19:03 +08:00
Dirkjan Ochtman 50c21a7037 Rename EppRequest to Transaction 2021-12-13 00:19:03 +08:00