def draft_update_api(public_id): data = request.get_json(force=True) original_draft = get_draft(public_id, data.get('version'), g.namespace.id, g.db_session) # TODO(emfree): what if you try to update a draft on a *thread* that's been # deleted? data = request.get_json(force=True) to = get_recipients(data.get('to'), 'to') cc = get_recipients(data.get('cc'), 'cc') bcc = get_recipients(data.get('bcc'), 'bcc') subject = data.get('subject') body = data.get('body') tags = get_tags(data.get('tags'), g.namespace.id, g.db_session) files = get_attachments(data.get('file_ids'), g.namespace.id, g.db_session) try: draft = sendmail.update_draft(g.db_session, g.namespace.account, original_draft, to, subject, body, files, cc, bcc, tags) except ActionError as e: return err(e.error, str(e)) return g.encoder.jsonify(draft)
def draft_update_api(public_id): try: valid_public_id(public_id) except InputError: return err(400, 'Invalid draft id {}'.format(public_id)) parent_draft = g.db_session.query(Message). \ filter(Message.public_id == public_id).first() if parent_draft is None or not parent_draft.is_draft or \ parent_draft.namespace.id != g.namespace.id: return err(404, 'No draft with public id {}'.format(public_id)) if not parent_draft.is_latest: return err(409, 'Draft {} has already been updated to {}'.format( public_id, g.encoder.cereal(parent_draft.most_recent_revision))) # TODO(emfree): what if you try to update a draft on a *thread* that's been # deleted? data = request.get_json(force=True) to = data.get('to') cc = data.get('cc') bcc = data.get('bcc') subject = data.get('subject') body = data.get('body') try: tags = get_tags(data.get('tags'), g.namespace.id, g.db_session) files = get_attachments(data.get('files'), g.namespace.id, g.db_session) except InputError as e: return err(404, e.message) draft = sendmail.update_draft(g.db_session, g.namespace.account, parent_draft, to, subject, body, files, cc, bcc, tags) return g.encoder.jsonify(draft)
def draft_update_api(public_id): parent_draft = g.db_session.query(Message). \ filter(Message.public_id == public_id).first() if parent_draft is None or not parent_draft.is_draft or \ parent_draft.namespace.id != g.namespace.id: return err(404, 'No draft with public id {}'.format(public_id)) if not parent_draft.is_latest: return err(409, 'Draft {} has already been updated to {}'.format( public_id, g.encoder.cereal(parent_draft.most_recent_revision))) # TODO(emfree): what if you try to update a draft on a *thread* that's been # deleted? data = request.get_json(force=True) to = data.get('to') cc = data.get('cc') bcc = data.get('bcc') subject = data.get('subject') body = data.get('body') try: tags = get_tags(data.get('tags'), g.namespace.id, g.db_session) files = get_attachments(data.get('files'), g.namespace.id, g.db_session) except InputError as e: return err(404, e.message) draft = sendmail.update_draft(g.db_session, g.namespace.account, parent_draft, to, subject, body, files, cc, bcc, tags) return g.encoder.jsonify(draft)
def draft_update_api(public_id): try: valid_public_id(public_id) except InputError: return err(400, 'Invalid draft id {}'.format(public_id)) data = request.get_json(force=True) if data.get('version') is None: return err(400, 'Must specify version to update') version = data.get('version') original_draft = g.db_session.query(Message).filter( Message.public_id == public_id).first() if original_draft is None or not original_draft.is_draft or \ original_draft.namespace.id != g.namespace.id: return err(404, 'No draft with public id {}'.format(public_id)) if original_draft.version != version: return err( 409, 'Draft {0}.{1} has already been updated to version ' '{2}'.format(public_id, version, original_draft.version)) # TODO(emfree): what if you try to update a draft on a *thread* that's been # deleted? data = request.get_json(force=True) to = get_recipients(data.get('to'), 'to') cc = get_recipients(data.get('cc'), 'cc') bcc = get_recipients(data.get('bcc'), 'bcc') subject = data.get('subject') body = data.get('body') try: tags = get_tags(data.get('tags'), g.namespace.id, g.db_session) files = get_attachments(data.get('file_ids'), g.namespace.id, g.db_session) except InputError as e: return err(404, e.message) try: draft = sendmail.update_draft(g.db_session, g.namespace.account, original_draft, to, subject, body, files, cc, bcc, tags) except ActionError as e: return err(e.error, str(e)) return g.encoder.jsonify(draft)
def draft_update_api(public_id): try: valid_public_id(public_id) except InputError: return err(400, 'Invalid draft id {}'.format(public_id)) data = request.get_json(force=True) if data.get('version') is None: return err(400, 'Must specify version to update') version = data.get('version') original_draft = g.db_session.query(Message).filter( Message.public_id == public_id).first() if original_draft is None or not original_draft.is_draft or \ original_draft.namespace.id != g.namespace.id: return err(404, 'No draft with public id {}'.format(public_id)) if original_draft.version != version: return err(409, 'Draft {0}.{1} has already been updated to version ' '{2}'.format(public_id, version, original_draft.version)) # TODO(emfree): what if you try to update a draft on a *thread* that's been # deleted? data = request.get_json(force=True) to = get_recipients(data.get('to'), 'to') cc = get_recipients(data.get('cc'), 'cc') bcc = get_recipients(data.get('bcc'), 'bcc') subject = data.get('subject') body = data.get('body') try: tags = get_tags(data.get('tags'), g.namespace.id, g.db_session) files = get_attachments(data.get('file_ids'), g.namespace.id, g.db_session) except InputError as e: return err(404, e.message) try: draft = sendmail.update_draft(g.db_session, g.namespace.account, original_draft, to, subject, body, files, cc, bcc, tags) except ActionError as e: return err(e.error, str(e)) return g.encoder.jsonify(draft)
def draft_update_api(public_id): try: valid_public_id(public_id) except InputError: return err(400, "Invalid draft id {}".format(public_id)) data = request.get_json(force=True) if data.get("version") is None: return err(400, "Must specify version to update") version = data.get("version") original_draft = g.db_session.query(Message).filter(Message.public_id == public_id).first() if original_draft is None or not original_draft.is_draft or original_draft.namespace.id != g.namespace.id: return err(404, "No draft with public id {}".format(public_id)) if original_draft.version != version: return err( 409, "Draft {0}.{1} has already been updated to version " "{2}".format(public_id, version, original_draft.version), ) # TODO(emfree): what if you try to update a draft on a *thread* that's been # deleted? data = request.get_json(force=True) to = data.get("to") cc = data.get("cc") bcc = data.get("bcc") subject = data.get("subject") body = data.get("body") try: tags = get_tags(data.get("tags"), g.namespace.id, g.db_session) files = get_attachments(data.get("files"), g.namespace.id, g.db_session) except InputError as e: return err(404, e.message) draft = sendmail.update_draft( g.db_session, g.namespace.account, original_draft, to, subject, body, files, cc, bcc, tags ) return g.encoder.jsonify(draft)