CheckPad API奮闘記

文字コードで奮闘

どうも、check*padではフォームの内容をEUC-JPで受け取るときとUTF8で受け取るときがあるみたいだ。分かってる範囲でまとめておくとこんな感じ

リストの追加 EUC-JP
リストの変更 EUC-JP
TODOの追加 EUC-JP
TODOの変更 UTF8

最初、Ajaxでのやり取り部がUTF8なのかと思ったけど、TODOの追加はAjaxで実装してるのに、EUC-JP…??。

エラー処理で奮闘

なんとかして、存在しないリストへのTodoの追加や存在しないTodo-IDへの変更等をエラーとして捕まえようとして、下記のような判定方法になった。最初、クッキーでエラーが帰ってくるとは思わなかったから、ちょっと苦戦。

リストの追加 cookieのキーであるsys_msgがあればOK(sys_msgには「リストが追加されました。最初のチェック項目を追加しましょう」みたいなメッセージが入ってる。)
リストの変更 cookieのきーであるsys_msgがあるときはエラー(sys_msgには「リストが見つかりません」みたいなメッセージが入ってる)
TODOの追加
TODOの変更 レスポンスのボディ部にDB Errorとか入ってなければOK

?の所はまだ判定方法調べてないところ。やっぱ、当たり前だけど、エラーかどうか判断する仕組みが統一されてないから、美しい方法が見つからないね。

それにしても、試しては実装、また試しては実装、ってやってたらソースコードが汚くなった。最低の実装だ。全体像が掴めた時にスクラッチから書き直す位の気持ちが必要だな。

とりあえず、現在の最新状態は下記。かなりプログラムとしては酷いので、参考にはしないように。そして、まだドキュメントなし。

http://ya-lab.main.jp/perl/module/CheckPad-0.011.tar.gz