- Cast send_invite value in cases where it might not have been a boolean,
which occurs on non-JSON requests.
- Added test to cover.
- Updated API docs to mention and shown boolean usage.
public function create(Request $request)
{
$data = $this->validate($request, $this->rules()['create']);
public function create(Request $request)
{
$data = $this->validate($request, $this->rules()['create']);
- $sendInvite = ($data['send_invite'] ?? false) === true;
+ $sendInvite = boolval($data['send_invite'] ?? false) === true;
$user = null;
DB::transaction(function () use ($data, $sendInvite, &$user) {
$user = null;
DB::transaction(function () use ($data, $sendInvite, &$user) {
+<p>
+ <em>
+ * Form requests can accept boolean (<code>true</code>/<code>false</code>) values via a <code>1</code> or <code>0</code>.
+ </em>
+</p>
+
<p>
Regardless of format chosen, ensure you set a <code>Content-Type</code> header on requests so that the system can correctly parse your request data.
The API is primarily designed to be interfaced using JSON, since responses are always in JSON format, hence examples in this documentation will be shown as JSON.
<p>
Regardless of format chosen, ensure you set a <code>Content-Type</code> header on requests so that the system can correctly parse your request data.
The API is primarily designed to be interfaced using JSON, since responses are always in JSON format, hence examples in this documentation will be shown as JSON.
<pre><code class="language-json">{
"name": "My new item",
<pre><code class="language-json">{
"name": "My new item",
"books": [105, 263],
"tags": [{"name": "Tag Name", "value": "Tag Value"}],
}</code></pre>
<p><strong>x-www-form-urlencoded</strong></p>
"books": [105, 263],
"tags": [{"name": "Tag Name", "value": "Tag Value"}],
}</code></pre>
<p><strong>x-www-form-urlencoded</strong></p>
-<pre><code class="language-text">name=My%20new%20item&books%5B0%5D=105&books%5B1%5D=263&tags%5B0%5D%5Bname%5D=Tag%20Name&tags%5B0%5D%5Bvalue%5D=Tag%20Value</code></pre>
+<pre><code class="language-text">name=My%20new%20item&locked=1&books%5B0%5D=105&books%5B1%5D=263&tags%5B0%5D%5Bname%5D=Tag%20Name&tags%5B0%5D%5Bvalue%5D=Tag%20Value</code></pre>
<p><strong>x-www-form-urlencoded (Decoded for readability)</strong></p>
<pre><code class="language-text">name=My new item
<p><strong>x-www-form-urlencoded (Decoded for readability)</strong></p>
<pre><code class="language-text">name=My new item
books[0]=105
books[1]=263
tags[0][name]=Tag Name
books[0]=105
books[1]=263
tags[0][name]=Tag Name
Notification::assertSentTo($user, UserInviteNotification::class);
}
Notification::assertSentTo($user, UserInviteNotification::class);
}
+ public function test_create_with_send_invite_works_with_value_of_1()
+ {
+ $this->actingAsApiAdmin();
+ Notification::fake();
+
+ $resp = $this->postJson($this->baseEndpoint, [
+ 'name' => 'Benny Boris',
+ 'send_invite' => '1', // Submissions via x-www-form-urlencoded/form-data may use 1 instead of boolean
+ ]);
+
+ $resp->assertStatus(200);
+ /** @var User $user */
+ Notification::assertSentTo($user, UserInviteNotification::class);
+ }
+
public function test_create_name_and_email_validation()
{
$this->actingAsApiAdmin();
public function test_create_name_and_email_validation()
{
$this->actingAsApiAdmin();