あさた研メモ

主に私が気づいたこととか困った時のメモとか書き留めとく用。

SendGrid の Dynamic Template では equals~else equals 構文も使える

SendGrid の Dynamic Template では、簡易的に if 文などの構文が使える。

docs.sendgrid.com

このドキュメントにおいて、if ~ else if の構文が使えることが紹介されている。

実はドキュメントに書いてないが、 equals や notEquals でも同様の構文が使える。

{{#equals var "hoge"}}
  ホゲだよ
{{else equals var "fuga"}}
  フガでござる
{{else}}
  知らんがな
{{/equals}}

上記の例では、

  • {"var": "hoge"} のとき => ホゲだよ
  • {"var": "fuga"} のとき => フガでござる
  • {"var": "piyo"} のとき => 知らんがな

という置換がされる。

なお注意として、これもifの項でしかドキュメントに書いてないのだが equals スコープ内で変数置換する場合、その参照の仕方に注意しないといけない。

# 渡すjson
{"weather": "rain", "date": "2021-12-31"}

# テンプレート
{{#equals weather "rain"}}
  雨量が少なければ様子を見て開催
{{else equals weather "snow"}}
  中止
{{else}}
  開催 ({{@root.date}})
{{/equals}}