プロジェクト

全般

プロフィール

機能 #899

ツイートする内容を新しいMessageインスタンスに格納し、その内容を投稿する仕組み

toshi_a 初音7ヶ月前に追加. 4ヶ月前に更新.

ステータス:
却下
優先度:
通常
担当者:
-
対象バージョン:
開始日:
2016-09-27
期日:
進捗率:

0%

プラグイン名:

説明

tweetはどんどん複雑になっていて、 #890 のような仕様変更・追加で投稿APIのインターフェイスがどんどん変わっていってる。
この変化を吸収し、クライアントサイドバリデーションの仕組みを共通化するために、Messageクラスに新しいtweetを作成する機能を追加する。

# いままで
Service.primary.post(
  message: "魔剤ンゴ!?",
  receiver: toshi_a,
  replyto: parent_message,
  mediaiolist: [...]
)
# 新しいの
Message.new(
  user: Service.primary.user_obj,
  body: "魔剤ンゴ!?",
  receivers: [User.findbyidname('toshi_a'), ...],
  replyto: parent_message,
  attachments: [...]
).compose

利点

学習コスト低減

ReadとWriteのインターフェイスがMessageに統一されることで、フィールドの名前を知ることでTweetからの値の読み出し・投稿の両方が出来るようになり、覚えることが減る。

投稿前に情報を取得することが容易になる

Messageには現在でも、ツイートに関する情報を集めるためのメソッドがたくさん用意されているが、これを投稿前に利用しながら、バリデーションなどのユーザへの情報の提供ができる。
具体的には、文字列のどの範囲がURLとして扱われるか、hidden header, hidden footerはどこからどこまでかといった情報が提供できると思う。

懸念

IDがない

IDはTwitterが決定するので、新しく作成したインスタンスにはIDがセットされない。Messageを扱う多くの処理が、IDがあることを前提にしているので、後方互換性を保ってこれを行うのは難しいかもしれない。


関連するチケット

関連している 環境対応 #891: postboxでの文字数カウント 終了 2016-09-20
ブロック元 環境対応 #892: ツイート投稿時、auto_populate_reply_metadataパラメータを付けてpostする 終了 2016-09-20
ブロック元 機能 #900: PhotoModel 終了 2016-09-27

履歴

#1 toshi_a 初音7ヶ月前に更新

  • ブロック元 環境対応 #892: ツイート投稿時、auto_populate_reply_metadataパラメータを付けてpostする を追加

#2 toshi_a 初音7ヶ月前に更新

#3 toshi_a 初音7ヶ月前に更新

#4 toshi_a 初音4ヶ月前に更新

  • ステータス新規 から 却下 に変更

必須となるキーとかが正しく扱えないので見送る

他の形式にエクスポート: Atom PDF