Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Requestに関するWebhookの修正 #629

Open
mehm8128 opened this issue Nov 14, 2022 · 10 comments
Open

Requestに関するWebhookの修正 #629

mehm8128 opened this issue Nov 14, 2022 · 10 comments
Labels
enhancement New feature or request v2 About Jomon version2

Comments

@mehm8128
Copy link
Contributor

  • 依頼→申請
  • targetが使われてなさそうなので追加する
  • tagの表示でstrings.Joinを使った方がよさそう
  • URLがrequestsじゃなくてv1のままapplicationsになってる箇所がある
  • 請求先グループ→グループでよさそう
  • 構造体名、v1に合わせるならRequestApplication→WebhookRequestとかの方がよさそう
  • 改行コード、単体で文字列になってるけど他の文字列と繋げちゃってよさそう
@mehm8128 mehm8128 added enhancement New feature or request v2 About Jomon version2 go good first issue Good issue for new contributors to get started with labels Nov 14, 2022
@mehm8128
Copy link
Contributor Author

  • requestに限らないけど、リクエストの失敗時にもメッセージが投げられてしまうようになっているので、失敗時には投げないようにしたい

@mehm8128
Copy link
Contributor Author

router.goとwebhook.goが微妙な感じなのでこんな感じにするときれいになりそうだと思ったのですがどうでしょうか

  • middleware.BodyDump(service.WebhookEventHandler)e.Useのみで使うようにする
  • service.WebhookEventHandler関数内ではリクエストURLに応じてswitchとかで振り分け、それぞれのcaseでさらに関数を実行する

@mehm8128
Copy link
Contributor Author

mehm8128 commented Jan 9, 2023

PUT /requests/{requestID}/status のときもwebhook飛ばしたいかも

@cskd8 cskd8 removed the go label Mar 14, 2023
@H1rono
Copy link
Member

H1rono commented Jun 23, 2024

依頼→申請

Jomon/service/webhook.go

Lines 101 to 105 in fc3c4ae

if c.Request().Method == http.MethodPost {
message += "## :receipt:依頼が作成されました" + "\n"
} else if c.Request().Method == http.MethodPut {
message += "## :receipt:依頼が更新されました" + "\n"
}

他にもあるかも

@H1rono
Copy link
Member

H1rono commented Jun 23, 2024

targetが使われてなさそう

Jomon/service/webhook.go

Lines 130 to 172 in fc3c4ae

var resApps []TransactionRequestApplication
err := json.Unmarshal(resBody, &resApps)
resApp := resApps[0]
if err != nil {
return
}
if c.Request().Method == http.MethodPost {
message += fmt.Sprintf("## :scroll:[入出金記録](%s/transactions/%s)が新規作成されました\n", "https://jomon.trap.jp", resApp.ID)
} else if c.Request().Method == http.MethodPut {
message += fmt.Sprintf("## :scroll:[入出金記録](%s/transactions/%s)が修正されました\n", "https://jomon.trap.jp", resApp.ID)
}
if len(resApps) == 1 {
if resApp.Amount < 0 {
message += fmt.Sprintf("- `%s`への支払い\n - 支払い金額: %d円\n", resApp.Target, -resApp.Amount)
} else {
message += fmt.Sprintf("- `%s`からの振込\n - 受け取り金額: %d円\n", resApp.Target, resApp.Amount)
}
} else {
targets := make([]string, len(resApps))
for i, resApp := range resApps {
targets[i] = fmt.Sprintf(`%s`, resApp.Target)
}
if resApp.Amount < 0 {
message += fmt.Sprintf("- %sへの支払い\n - 支払い金額: 計%d円(一人当たりへの支払い金額: %d円)\n", strings.Join(targets, " "), -len(resApps)*resApp.Amount, -resApp.Amount)
} else {
message += fmt.Sprintf("- %sからの振込\n - 受け取り金額: 計%d円(一人当たりからの受け取り金額: %d円)\n", strings.Join(targets, " "), len(resApps)*resApp.Amount, resApp.Amount)
}
}
if resApp.Group != nil {
message += fmt.Sprintf("- 関連するグループ: %s\n", resApp.Group.Name)
}
if resApp.Tags != nil {
tags := make([]string, len(resApp.Tags))
for i, tag := range resApp.Tags {
tags[i] = fmt.Sprintf(`%s`, tag.Name)
}
if len(resApp.Tags) == 0 {
message += fmt.Sprintf("")
} else {
message += fmt.Sprintf("- タグ: %s", strings.Join(tags, " "))
}
}

resApps[N].Targetを盛り込む
ところで馬鹿でかいので関数に切り出したい

@H1rono
Copy link
Member

H1rono commented Jun 23, 2024

tagの表示

Jomon/service/webhook.go

Lines 119 to 125 in fc3c4ae

if resApp.Tags != nil {
message += "- タグ: "
for _, tag := range resApp.Tags {
message += tag.Name + ", "
}
message = message[:len(message)-len(", ")]
}

ここ以外にもあるかも

strings.Joinのref↓
https://pkg.go.dev/strings#Join

@H1rono
Copy link
Member

H1rono commented Jun 23, 2024

URLのrequests, applicactions

message += fmt.Sprintf("### [%s](%s/applications/%s)", resApp.Title, "https://jomon.trap.jp", resApp.ID) + "\n"

こういう系?一回フロントエンドと話し合うべきかも

@H1rono
Copy link
Member

H1rono commented Jun 23, 2024

請求先グループ

message += fmt.Sprintf("- 請求先グループ: %s", resApp.Group.Name) + "\n"

他の部分と照らし合わせて確認したい(「請求元」の可能性ありそうと思っている)

@H1rono
Copy link
Member

H1rono commented Jun 23, 2024

改行文字

Jomon/service/webhook.go

Lines 113 to 117 in fc3c4ae

message += fmt.Sprintf("- 支払金額: %d円", amount) + "\n"
if resApp.Group != nil {
message += fmt.Sprintf("- 請求先グループ: %s", resApp.Group.Name) + "\n"
}

ここなど

@H1rono
Copy link
Member

H1rono commented Jun 23, 2024

構造体名

Jomon/service/webhook.go

Lines 22 to 44 in fc3c4ae

type RequestApplication struct {
ID uuid.UUID `json:"id"`
CreatedBy uuid.UUID `json:"created_by"`
Title string `json:"title"`
Content string `json:"content"`
Tags []*Tag `json:"tags"`
Targets []*Target `json:"targets"`
Group *Group `json:"group"`
}
type CommentApplication struct {
ID uuid.UUID `json:"id"`
User uuid.UUID `json:"user"`
Comment string `json:"comment"`
}
type TransactionRequestApplication struct {
ID uuid.UUID `json:"id"`
Amount int `json:"amount"`
Target string `json:"target"`
Tags []*Tag `json:"tags"`
Group *Group `json:"group"`
}

なんか考える

This was referenced Jun 28, 2024
@H1rono H1rono removed the good first issue Good issue for new contributors to get started with label Jul 7, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request v2 About Jomon version2
Projects
None yet
Development

No branches or pull requests

3 participants