0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

毎日のごはんを楽に記録する Part2

Last updated at Posted at 2019-12-29

#はじめに
前回投稿した毎日のごはんを楽に記録する Part1の続きです。
今日何を食べたのかを、毎日忘れずに かつ 楽に 記録したい というのが目的です。

#Part1のバグ
昨日からこのシステムを運用していたのだが、晩御飯を記録していないはずなのに、記入を促すSlack通知が来ないことに気づいた。
この課題を解決する。

#原因
スプレッドシートの最終行の記入日付が今日の日付かを判定し、今日の日付が存在しない場合、通知を送るような実装になっていた。

そのため、今日の朝ご飯 or 昼ご飯を記入していると、記入済と認識されてしまい、通知が来なかった。

#対策
今日晩御飯が記入されているかどうかの判定基準に、日付だけでなく、ご飯の種別も判断するように以下のようにコードを改修した。

dailycheck.gs
  //日付を比較して不一致なら書き込みフォロー処理関数呼び出し
  if(lastdate2 != currentdate){
    postSlack("今日の晩御飯は何を食べましたか?");
  }else if(lastdate2 == currentdate){
    //記入されているのが晩ごはんかを判定する
    if(mealtype.match(//) || mealtype.match(//) || mealtype.match(//)){
      //今日の分は記入済みなのでなにもしない
    }else if(mealtype.match(//) || mealtype.match(//)){
      //朝または昼が記入されているので、書き込みフォロー関数呼び出し
      postSlack("今日の晩御飯は何を食べましたか?");
    }else{
      postSlack("dailyCheck error1!\n" + lastdate2 + "\n" + currentdate + "\n" + mealtype);
    }
        
  }else{
    postSlack("dailyCheck error2!\n" + lastdate2 + "\n" + currentdate + "\n" + mealtype);
  }

#得た知識
変数内の文字列の検索には、matchが使える。
mealtype.match(/晩/) とすると、mealtypeの文字列内に"晩"という文字列が含まれているかをチェックできる。

#追記
Part3を書きました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?