IRC-WIR / ft_irc

0 stars 0 forks source link

JOINコマンドを実装 #90

Closed paphio-kitsuki closed 6 days ago

paphio-kitsuki commented 1 week ago

JOINコマンドを実装するにあたり、様々な変更を加えました。 JOIN系関数(CkJoin~, ExJoin~)以外の部分での変更は以下の通りです。 ・Eventにis_do_nothing変数を追加 (コマンドを実行する(Executeに回す)意味がないことを示す変数。JOINでそれを判定するとき、変数を使用しないと実装できなかったため。) -> 認証前で実行しても意味がない場合を判定する文も、現在はEventHandlerに記述していますが、この変数を利用したいです。 ・Channelを、オペレーターが複数いても大丈夫なように変更 ・Channelのモードの管理方法をmapに変更 ・Channelのnicknameによる検索において、一致条件を変更 (こちらの問題に対応しました) ・EventHandler内に、必要に応じてChannelを生成する関数を作成 (こちらに対応)  ↑これDatabase内でも良いかも? ・UserにChannelを持たせるよう変更 (こちらに対応) ・DatabaseのCheck内で、EventConfiguratorをすべて回した後に実行する関数「AfterCheck」の実装 ・utilsにStrToLowerや、vectorを継承して新たに「Contains」と「Remove」関数を追加したクラスを実装

makeによるコンパイルは確認済みです。

rinonaito commented 1 week ago

・Channelのnicknameによる検索において、一致条件を変更 (こちらの問題に対応しました)

調査ありがとう!これ、知らなかった。。。 では、ニックネームはレターケースを無視した場合にも一意であることが保証されている、という想定ですよね? であれば、NICKコマンドの実装を一部修正します。 現状、ニックネーム設定時の一意性確認はレターケースのみでも差異があれば一意であるとして受け付けちゃってるんで。。。(現状、abcが存在しても、NICK AbC は成功します)

paphio-kitsuki commented 1 week ago

そうですね。NICKに関しても、もともとabcの人がNICK AbC としても、何も表示されず、abcのままだったことは確認しました。 NICKの対応お願いします。

weijuan82113 commented 1 week ago

-> 認証前で実行しても意味がない場合を判定する文も、現在はEventHandlerに記述していますが、この変数を利用したいです。

了解です。 ・マージしてから対応したいですので、レビューの修正をお願いします。 現在は基本のコマンド実行でセグフォーが発生します。確認をお願いします。

join #ch1

・エラーが発生した場合は、EventHandlerのExecuteを回しますので、該当変数に関係ない認識で大丈夫ですか?

paphio-kitsuki commented 1 week ago

はい。その認識で大丈夫です。

weijuan82113 commented 1 week ago

再度コードを確認してみました、下記シーケンス図を参考して認識合わせをしたいです。

Drawio

現在動作確認したところセグフォが発生していて、AddNewChannelの処理にchannel名が設定されていないが問題です、 もう一度ロージックを確認して、今日チャートで話した下記問題点を後で確認させていただきたいです。

・フラグを追加してDBのcheckで対象が存在するか確認? ・パラメータにニックネームがある場合?

paphio-kitsuki commented 1 week ago

修正しました。 今度は挙動も正常であることを確認しました。 所属済みのチャンネルに対するJOINについて... 自身の所属しているチャンネルが最大数に達している場合:エラー それ以外(チャンネルにモードi,k,lが設定されている場合):特になし だったので、それに合わせましたが、全てのエラーに対して、表示するか何もしないか統一した方が良いかもしれません。

weijuan82113 commented 6 days ago

下記を確認しました。

【確認済みテスト】

【未確認テスト】

paphio-kitsuki commented 6 days ago

ちなみに、僕は各modeも確認済みです。