Commit c276fe8
committed
feat: require email for RFQ access requests, make WhatsApp optional
- Add `Serialize` derive and `AccessRequestPayload` struct to properly serialize access request payloads with `skip_serializing_if` to omit null fields, since the venue validates these as optional strings
- Extract `filled()` helper to trim and filter blank values consistently across the codebase
- Change validation from `require_contact()` to `require_email()` since email is the required channel for Textile to reply, making WhatsApp a bonus contact method
- Update error message to clarify that email is required for replies while WhatsApp is optional
- Replace manual `json!()` macro call with structured `AccessRequestPayload` serialization to prevent null fields in the request body
- Add test assertion verifying no null fields are sent in the request body
- Expand `request_access_needs_contact` test to verify email is mandatory even when WhatsApp is provided
- Update UI help text to explain email is required for review replies and WhatsApp is optional
- Add "(optional)" label to WhatsApp field in the form
- Disable access request button when email field is empty1 parent 6e825d4 commit c276fe8
6 files changed
Lines changed: 64 additions & 34 deletions
File tree
- src/panel/http
- web/src/components
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
12 | | - | |
| 12 | + | |
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
| |||
53 | 53 | | |
54 | 54 | | |
55 | 55 | | |
56 | | - | |
57 | | - | |
58 | | - | |
59 | | - | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
60 | 81 | | |
61 | 82 | | |
62 | 83 | | |
63 | | - | |
| 84 | + | |
64 | 85 | | |
65 | 86 | | |
66 | 87 | | |
| |||
87 | 108 | | |
88 | 109 | | |
89 | 110 | | |
90 | | - | |
91 | | - | |
92 | | - | |
93 | | - | |
| 111 | + | |
94 | 112 | | |
95 | 113 | | |
96 | 114 | | |
| |||
106 | 124 | | |
107 | 125 | | |
108 | 126 | | |
109 | | - | |
110 | | - | |
111 | | - | |
112 | | - | |
113 | | - | |
114 | | - | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
115 | 133 | | |
116 | 134 | | |
117 | 135 | | |
118 | | - | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
119 | 139 | | |
120 | 140 | | |
121 | 141 | | |
| |||
339 | 359 | | |
340 | 360 | | |
341 | 361 | | |
| 362 | + | |
| 363 | + | |
| 364 | + | |
| 365 | + | |
| 366 | + | |
| 367 | + | |
| 368 | + | |
| 369 | + | |
| 370 | + | |
| 371 | + | |
342 | 372 | | |
343 | 373 | | |
344 | 374 | | |
| |||
395 | 425 | | |
396 | 426 | | |
397 | 427 | | |
398 | | - | |
| 428 | + | |
399 | 429 | | |
400 | 430 | | |
401 | 431 | | |
402 | 432 | | |
403 | | - | |
404 | | - | |
405 | | - | |
406 | | - | |
407 | | - | |
408 | | - | |
409 | | - | |
410 | | - | |
| 433 | + | |
| 434 | + | |
| 435 | + | |
| 436 | + | |
| 437 | + | |
| 438 | + | |
| 439 | + | |
411 | 440 | | |
412 | 441 | | |
413 | 442 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
816 | 816 | | |
817 | 817 | | |
818 | 818 | | |
819 | | - | |
820 | | - | |
| 819 | + | |
| 820 | + | |
| 821 | + | |
821 | 822 | | |
822 | 823 | | |
823 | 824 | | |
| |||
829 | 830 | | |
830 | 831 | | |
831 | 832 | | |
832 | | - | |
| 833 | + | |
833 | 834 | | |
834 | 835 | | |
835 | 836 | | |
| |||
843 | 844 | | |
844 | 845 | | |
845 | 846 | | |
846 | | - | |
| 847 | + | |
847 | 848 | | |
848 | 849 | | |
849 | 850 | | |
| |||
0 commit comments