# $Id: Changes,v 1.5 2006/08/15 13:30:12 dtikhonov Exp $
Revision history for Perl module RT::Client::REST

0.26    Tue Aug 15 2006 "Dmitri Tikhonov" <dtikhonov@vonage.com>
  ! lib/RT/Client/REST.pm
    * Match either $res->content or $res->message for the timeout
      message; this depends on version of HTTP::Response installed on
      the system.  Discovered when timeout tests threw wrong exceptions
      on an old box.

  ! README
    * Reworded some things.

0.25    Wed Aug  9 2006 "Dmitri Tikhonov" <dtikhonov@vonage.com>
  Added support for basic HTTP authentication.

  ! lib/RT/Client/REST.pm
    * Added support for using basic HTTP authentication with the help
      of a callback provided via method "basic_auth_cb".
    * Use our own UA class (subclass of LWP::UserAgent).

  ! t/10-core.t
    * More tests.

  + lib/RT/Client/REST/HTTPClient.pm
    * Subclass of LWP::UserAgent to add some methods.

  + examples/report-bug-to-cpan.pl
    * Report a bug to CPAN rt.

  ! examples/show_ticket.pl
    * Removed ticket-modifying code.

  ! MANIFEST
    * Added new files.

  ! TODO
    * More stuff to do.

0.24    Tue Aug  8 2006 "Dmitri Tikhonov" <dtikhonov@vonage.com>
  ! lib/RT/Client/REST.pm
    * Added 'timeout' attribute to the object.  If specified, overrides
      the default used by LWP::UserAgent.

  ! lib/RT/Client/REST/Exception.pm
    * Added RT::Client::REST::RequestTimedOutException.

  ! 91-pod-coverage.t
    * RT::Client::REST now has improved POD.

  ! MANIFEST
    * Added new files.

  ! TODO
    * Added 'write user manual' item.

  + t/80-timeout.t
    * Test timeout exceptions.

  + README
    * Added README file.

0.23    Fri Aug  4 2006 "Dmitri Tikhonov" <dtikhonov@vonage.com>
  ! lib/RT/Client/REST.pm
    * API change -- added 'login' method.

  ! lib/RT/Client/REST/SearchResult.pm
    * API change -- 'object' instead of 'retrieve'.

  ! lib/RT/Client/REST/Object.pm
    * Added support for transparency and a bunch of other goodies.
      See POD.

  ! lib/RT/Client/REST/Attachment.pm
  ! lib/RT/Client/REST/Ticket.pm
    * Modified to conform to changed APIs.

  ! examples/*.pl
    * Modified to adhere to new APIs.

  + t/35-db.t
    * Test auto* goodies.

  + t/91-pod-coverage.t
    * Test POD coverage.

  ! t/10-core.t
  ! t/20-object.t
  ! t/40-search.t
    * Updated with new tests, methods, APIs, etc.

  ! MANIFEST
    * Added new test files.

0.22    Fri Aug  4 2006 "Dmitri Tikhonov" <dtikhonov@vonage.com>
  ! lib/RT/Client/REST/Object.pm
    * Modified behavior.  Now list attribute methods return lists,
      not array references.
    * Fixed the way comma-separated values are split when parsing forms.
    * Updated POD.

  ! Makefile.PL
    * Added dependency on Test::Exception, so that automated CPAN tests
      don't fail.

  ! lib/RT/Client/REST.pm
    * Updated POD.
    * Upped VERSION.
    * No code changes.

  ! examples/edit_ticket.pl
    * Modified to support setting list attributes.

0.21    Thu Aug  3 2006 "Dmitri Tikhonov" <dtikhonov@vonage.com>
  ! lib/RT/Client/REST.pm
    * Added support for attachments.

  ! lib/RT/Client/REST/Ticket.pm
    * Updated POD.

  ! lib/RT/Client/REST/Exception.pm
    * Added exception RT::Client::REST::CannotReadAttachmentException.
    * Jump version to 0.17 so that CPAN indexer does not bitch.

  ! t/22-ticket.t
    * Added test for RT::Client::REST::CannotReadAttachmentException.

0.20    Wed Aug  2 2006 "Dmitri Tikhonov" <dtikhonov@vonage.com>
  Added support for queues.

  ! lib/RT/Client/REST.pm
    * Modified method "show()" to accept non-numeric IDs for objects
      of type 'queue'.

  + lib/RT/Client/REST/Queue.pm
  + t/25-queue.t
    * Queue support.

  + examples/show_queue.pl
  + examples/create_user.pl
  + examples/list_tickets.pl
    * More examples.

  ! MANIFEST
    * Added new files.

0.19    Wed Aug  2 2006 "Dmitri Tikhonov" <dtikhonov@vonage.com>
  ! lib/RT/Client/REST.pm
    * Fixed a bug in 'create' and 'edit' -- introduced in 0.14 when
      APIs changed.  (Note to self - need a full-blown test suite).

0.18    Wed Aug  2 2006 "Dmitri Tikhonov" <dtikhonov@vonage.com>
  ! lib/RT/Client/REST.pm
  ! t/10-core.t
    * Added methods 'take', 'untake', and 'steal'.
    * If attribute 'server' is unset,
      RT::Client::REST::RequiredAttributeUnsetException will be thrown
      when a REST method is called.

  ! lib/RT/Client/REST/Exception.pm
    * Added exceptions:
      * RT::Client::REST::RequiredAttributeUnsetException
      * RT::Client::REST::AlreadyTicketOwnerException

  ! lib/RT/Client/REST/Object.pm
  ! t/20-object.t
    * Added convenience assertions methods:
      * _assert_rt_and_id
      * _assert_rt
    * Added assertions to methods 'retrieve', 'store', and 'count'.

  ! lib/RT/Client/REST/Object/Exception.pm
    * Added exceptions:
      * RT::Client::REST::Object::NoopOperationException
      *	RT::Client::REST::Object::RequiredAttributeUnsetException

  ! lib/RT/Client/REST/Ticket.pm
  ! t/22-ticket.t
    * Added methods 'take', 'untake', and 'steal'
    * Added assertions in a couple of places
    * Fixed up POD.

  + examples/take_ticket.pl
    * Taking a ticket.

  ! MANIFEST
    * Added new example.

0.17    Tue Aug  1 2006 "Dmitri Tikhonov" <dtikhonov@vonage.com>
  + lib/RT/Client/REST/Transaction.pm
  + t/24-transaction.t
    * Added transaction object.

  + examples/show_transaction.pl
  + examples/list_transactions_rt.pl
  + examples/list_transactions.pl
    * Some more examples.

  ! lib/RT/Client/REST/Ticket.pm
    * Added method "transactions()".

  ! lib/RT/Client/REST.pm
  ! t/10-core.t
    * Added methods "get_transaction_ids()" and "get_transaction()"

  ! lib/RT/Client/REST/Attachment.pm
    * After retrieving values, set everything to not dirty.
    * Fixed up POD.

  ! MANIFEST
    * Added new files.

0.16    Tue Aug  1 2006 "Dmitri Tikhonov" <dtikhonov@vonage.com>
  Added support for user object; other minor changes.

  + lib/RT/Client/REST/User.pm
  + t/21-user.t
    * Added user object.

  + examples/show_user.pl
  + examples/edit_user.pl
    * Examples of the user APIs.

  ! lib/RT/Client/REST.pm
    * If method "show()" is called to retrieve an object of type "user",
      'id' parameter does not have to be numeric.

  ! lib/RT/Client/REST/Exception.pm
    * Added RT::Client::REST::UnauthorizedActionException
    * Method _rt_content_to_exception() now returns a ready-to-throw
      exception with message set to massaged text from RT server.

  ! MANIFEST
    * Added new files.

0.15    Tue Aug  1 2006 "Dmitri Tikhonov" <dtikhonov@vonage.com>
  ! lib/RT/Client/REST/Ticket.pm
    * Fixed up POD.

  ! lib/RT/Client/REST.pm
    * Upped $VERSION to 0.15 -- no code changes.

0.14    Tue Aug  1 2006 "Dmitri Tikhonov" <dtikhonov@vonage.com>
  + lib/RT/Client/REST/Attachment.pm
  + examples/list_attachments.pl
  + examples/show_attachment.pl
  + t/23-attachment.t
    * New attachment representation.

  ! lib/RT/Client/REST/Ticket.pm
  ! t/22-ticket.t
    * Added method "attachments()".

  ! lib/RT/Client/REST/SearchResult.pm
  ! t/40-search.t
    * Changed APIs to be more flexible -- pass a closure to retrieve
      objects.

  ! lib/RT/Client/REST/Object.pm
    * Modified to work correctly with new REST.pm and SearchResult.pm APIs.

  ! lib/RT/Client/REST/Object/Exception.pm
    * Added RT::Client::REST::Object::IllegalMethodException

  ! examples/show_ticket.pl
    * Catch and display exceptions.

  ! lib/RT/Client/REST/Exception.pm
    * Added several exceptions.
    * Added POD.

  ! lib/RT/Client/REST.pm
  ! t/10-core.t
    * Modified "show()" and "edit()" methods to only accept a single ID.
      This is needed in order to correctly throw exceptions -- one object
      at a time, please.
    * Added methods "get_attachment_ids()" and "get_attachment()".
    * Removed list of exceptions (see Exception.pm docs).
    * Various small updates to POD.

  ! MANIFEST
    * Added the new files.

0.13    Mon Jul 31 2006 "Dmitri Tikhonov" <dtikhonov@vonage.com>
  Added searching APIs.

  ! lib/RT/Client/REST/Object.pm
    * Added methods 'search' and 'count'.
    * Updated POD.

  + lib/RT/Client/REST/SearchResult.pm
    * This class is an OO representation of search results.

  + t/40-search.t
    * Tests for RT/Client/REST/SearchResult.pm

  + examples/search_tickets.pl
    * Example of a search.

  ! lib/RT/Client/REST.pm
    * Added method 'search'.
    * Modified POD to reflect latest changes.

  ! t/10-core.t
    * Added test for method 'search'.

  ! lib/RT/Client/REST/Exception.pm
    * Added RT::Client::REST::InvalidQueryException
    * Added $VERSION

  ! lib/RT/Client/REST/Object/Exception.pm
    * Added two exceptions:
      * RT::Client::REST::Object::InvalidSearchParametersException
      * RT::Clite::REST::Object::InvalidAttributeException

  ! TODO
    * Search has been implemented.

  ! MANIFEST
    * Added search-related files.

0.12    Tue Jul 25 2006 "Dmitri Tikhonov" <dtikhonov@vonage.com>
  Refactoring and improvement continues.  Still very much beta.

  ! lib/RT/Client/REST/Ticket.pm
    * Added methods 'comment' and 'correspond'.
    * Added attribute 'last_updated'.
    * Added POD.

  ! t/22-ticket.t
    * Added tests for new methods and attributes.

  ! lib/RT/Client/REST.pm
    * Added 'cc' and 'bcc' support to 'comment' and 'correspond' methods.
    * Refactoring: moved forms functions and exceptions into their own files.
    * Fixed POD (s/=end/=cut/).
    * Throw 409 RT errors (syntax errors), since this client is not
      interactive.

  + lib/RT/Client/REST/Exception.pm
    * Refactoring: moved forms functions and exceptions into their own files.
    * Mapped 'does not exist' to ObjectNotFound exception.
    * Added RT::Client::REST::UnknownCustomFieldException.

  + lib/RT/Client/REST/Forms.pm
    * Refactoring: moved forms functions and exceptions into their own files.

  ! lib/RT/Client/REST/Object.pm
    * When creating an object, update $self with the new id.
    * Added support for fetching and updating custom fields.
    * Added method 'cf' for custom field manipulation.
    * Added POD.

  ! t/20-object.t
    * Added test for 'cf' method.

  + t/90-pod.t
    * Added POD tests using Test::Pod.

  ! examples/edit_ticket.pl
  ! examples/show_ticket.pl
    * Now rtserver is $ENV{RTSERVER} by default.

  + examples/create_ticket.pl
  + examples/comment_on_ticket.pl
  + examples/edit_custom_field.pl
    * More examples.

  ! Makefile.PL
    * Added dependency on Params::Validate.

  ! MANIFEST
    * Updated to reflect new tests, examples, and classes.

  + TODO
    * Added TODO file.

0.11    Sat Jul 22 2006 "Dmitri Tikhonov" <dtikhonov@vonage.com>
  ! lib/RT/Client/REST.pm 
    * Make $VERSION a string so that 'make tardist' works as
      expected (i.e. version 0.10 instead of 0.1).

0.10    Sat Jul 22 2006 "Dmitri Tikhonov" <dtikhonov@vonage.com>
  Started working on new APIs; new objects and file structure.

0.06    Wed Jul 12 2006 "Dmitri Tikhonov" <dtikhonov@vonage.com>
  * Method 'create' now returns numeric ID of the new object.
  * RT::Interface::REST is no longer a requirement.  If it is not
    installed, embedded copy of auxiliary methods is used.
  * Added tests.

0.05    Thu Apr 20 2006 "Dmitri Tikhonov" <dtikhonov@vonage.com>
  * Added RT::Client::REST::CouldNotCreateObjectException

0.04    Wed Apr 19 2006 "Dmitri Tikhonov" <dtikhonov@vonage.com>
  * Removed old print statements

0.03    Wed Apr 19 2006 "Dmitri Tikhonov" <dtikhonov@vonage.com>
  This is the initial release.

# vim:sts=2:sw=2:et:ft=changelog: