From be7903443ce35c3a92f04414e3d1a3b6d51f8aef Mon Sep 17 00:00:00 2001 From: Tim Abbott Date: Tue, 14 May 2013 15:18:11 -0400 Subject: [PATCH] Add support for updating messages after they've been received. Currently the interface for editing messages is limited to a command-line API tool; it's great for testing with e.g.: ./api/examples/edit-message --message=348135 --content="test $(date +%s)" --site=http://localhost:9991 --subject="test" The next commit will add a user interface for actually doing the editing. (imported from commit bdd408cec2946f31c2292e44f724f96ed5938791) --- examples/edit-message | 52 +++++++++++++++++++++++++++++++++++++++++++ humbug/__init__.py | 1 + 2 files changed, 53 insertions(+) create mode 100755 examples/edit-message diff --git a/examples/edit-message b/examples/edit-message new file mode 100755 index 0000000..bf9d4aa --- /dev/null +++ b/examples/edit-message @@ -0,0 +1,52 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright © 2012 Humbug, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +import sys +from os import path +import optparse + +usage = """edit-message [options] --message= --content= --subject= + +Edits a message + +Example: edit-message --message="348135" --subject="my subject" --message="test message" +""" +parser = optparse.OptionParser(usage=usage) +parser.add_option('--subject', default="") +parser.add_option('--message', default="") +parser.add_option('--site', default='https://humbughq.com') +parser.add_option('--content', default="") +(options, args) = parser.parse_args() + +sys.path.insert(0, path.join(path.dirname(__file__), '..')) +import humbug +client = humbug.Client(site=options.site) + +message_data = { + "message_id": options.message, +} +if options.subject != "": + message_data["subject"] = options.subject +if options.content != "": + message_data["content"] = options.content +print client.update_message(message_data) diff --git a/humbug/__init__.py b/humbug/__init__.py index aaee8f4..47e8054 100644 --- a/humbug/__init__.py +++ b/humbug/__init__.py @@ -272,6 +272,7 @@ def _mk_events(event_types=None): return dict(event_types=event_types) Client._register('send_message', url='messages', make_request=(lambda request: request)) +Client._register('update_message', method='PATCH', url='messages', make_request=(lambda request: request)) Client._register('get_messages', method='GET', url='messages/latest', longpolling=True) Client._register('get_events', url='events', method='GET', longpolling=True, make_request=(lambda **kwargs: kwargs)) Client._register('register', make_request=_mk_events)