ケ・セラ・セラ

妄想とか備忘録とか思いつくまま

Wiki.jsなGraphQLでユーザー作成試行中の続き(タイムゾーン)

Wiki.jsなGraphqlでユーザー作成試行中 その2 - ケ・セラ・セラでやりきった感出してましたGrarphQLでのユーザー作成、出来はしたのですけど、途中いくつか想定外のことがおこったのでその内容を。

  • Wikiの記事を作成すると時間が過去になる
    システム時刻のlocaltimeだろうと踏んで、「Alpine Linux でタイムゾーンを変更する - Qiita」あたりを参考にWiki.js DockerコンテナのAlpine LinuxタイムゾーンをAsia/Tokyoにするも記事作成時刻は変わらず。

    Release Notes | Wiki.jsのtimezoneに関する対応内容をみるとどうも「User Profile」に設定がある(ユーザー毎?)様で、デフォルトはNewYork。(通りでGMTとの時差でもなかったわけです)

    f:id:kittantan:20201226010621p:plain

    UserMutationsスキーマを調べると”update”なるものがあって、ユーザー毎のtimezone要素があり、そこにタイムゾーン文字列(”Asia/Tokyo”)を指定してリクエストすれば変更できそうなことがわかる。

    f:id:kittantan:20201226011500p:plain

f:id:kittantan:20201226011634p:plain

これで無事に編集時間がJSTになるようにJenkinsジョブからユーザー作成できるようになりました。

でも、なぜcreateのパラメータには無いんだろう?

  • createのレスポンス”uses”が作成成功してもnull
    createでtimezone属性設定できないのでupdateを改めて呼ぶわけですが、ユーザー特定のためwiki.jsシステムが割り振るユーザーidをパラメータに指定して呼び出す必要があります。
    createのレスポンスにあるから余裕と思っていたのですがどうしてもnullしか返却されない(Wiki.js Ver.2.5.170)。
    仕方ないのでcreate後にusers: UserQueryのserchでユーザーIDを取得してupdateのパラメータにしています。
    私の使い方の問題なのかシステムのもんだいなのか、いやはや。