Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
e3cc845
Fix signup test
kd-at-mi Mar 16, 2025
b0195ea
Participant Disclosure authorization
kd-at-mi Mar 19, 2025
4403dcb
Add Participant, Child, and Region Resources
kd-at-mi Mar 23, 2025
27074f1
Update Participant Disclosure Routes, Controller, Tests
kd-at-mi Mar 23, 2025
6472403
Rename Front End Pages for Participant Disclosure
kd-at-mi Mar 23, 2025
44d7881
Remove unused variable assignments
kd-at-mi Mar 23, 2025
c8769c5
update participant factory to add permission
kd-at-mi Mar 23, 2025
3ccc43a
implement participant fatherhood assessment form
kd-at-mi Mar 23, 2025
e79b454
implement participant fatherhood survey form
kd-at-mi Mar 23, 2025
e05dfa4
remove unused imports on fatherhood survey test
kd-at-mi Mar 23, 2025
1e41d71
implement participant service plan forms
kd-at-mi Mar 23, 2025
a7fc463
implement participant media release forms
kd-at-mi Mar 23, 2025
774f4ee
Update Participant Types and create MediaRelease Resource
kd-at-mi Mar 23, 2025
905de6c
Add Media Release Forms & Intake Complete
kd-at-mi Mar 23, 2025
0cca6ae
Add Fatherhood Assessment Forms (WIP)
kd-at-mi Mar 23, 2025
f6bbd4f
Refactor Disclosure Auth Test and Fix issues with ParticipantDisclosu…
kd-at-mi Mar 25, 2025
7bb20b2
Basic implementation of Fatherhood Survey Form
kd-at-mi Mar 26, 2025
5a53970
Rename Request Files
kd-at-mi Mar 26, 2025
b2ea360
fix: change method to put and add id to the route
kd-at-mi Mar 26, 2025
3929712
Added disclosure release form and service plan form to Kevin's page f…
nomedis Apr 21, 2025
9ac7021
Passing npx prettier --check now.
nomedis Apr 21, 2025
08705d9
All automatically fixable linter issues fixed. 12 linter issues remai…
nomedis Apr 21, 2025
cc35bc1
Linter check passes now.
nomedis Apr 21, 2025
d76bdd3
Merge branch 'main' into feat/intake-backend
nomedis Apr 23, 2025
07b3134
Refactor Resource classes to be Data classes
ntoombs19 Apr 30, 2025
2839aff
wip
ntoombs19 May 28, 2025
1f7cfc8
PHP crashing
ntoombs19 May 28, 2025
7910228
User registration form works
ntoombs19 Jun 4, 2025
e0431dd
Ignore docker directory in .gitignore
ntoombs19 Jun 6, 2025
e2b4fb2
Add user id to session after registration
ntoombs19 Jun 6, 2025
e1e62e8
Merge branch 'upstream/main' into feat/intake-backend
ntoombs19 Jun 6, 2025
61836e9
Participant signup working
ntoombs19 Jun 8, 2025
8eaa8bb
Disclosure form mostly working
ntoombs19 Jun 10, 2025
f3d73a7
Working migration state
ntoombs19 Jun 14, 2025
d446075
wip
ntoombs19 Jun 15, 2025
71b3fb1
wip
ntoombs19 Jun 16, 2025
0170697
Bootstrap pest tests
ntoombs19 Jun 18, 2025
422b95e
Wip
ntoombs19 Jun 19, 2025
4e8edb9
Wip
ntoombs19 Jul 1, 2025
772a52a
Remove intake functionality
ntoombs19 Sep 3, 2025
8b2d63b
Add gitignore back to cache directory
ntoombs19 Sep 3, 2025
1f6a397
Fix prettier formatting
ntoombs19 Sep 3, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -65,5 +65,6 @@ VITE_APP_NAME="${APP_NAME}"

ADMIN_FIRST_NAME="Admin"
ADMIN_LAST_NAME="User"
ADMIN_EMAIL="admin@test.com"
ADMIN_EMAIL="admin@example.com"
ADMIN_PHONE_NUMBER="1234567890"
ADMIN_PASSWORD="password123"
10 changes: 9 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,14 @@ yarn-error.log
/.editorconfig
/.php-cs-fixer.cache
dbml-error.log

/docker
*storybook.log
.DS_Store
.windsurfrules

# Playwright
node_modules/
/test-results/
/playwright-report/
/blob-report/
/playwright/.cache/
7 changes: 4 additions & 3 deletions app/Concerns/EnumDisplayArray.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

namespace App\Concerns;

use \BackedEnum as Enum;
use BackedEnum as Enum;

/**
* @mixin Enum
Expand All @@ -13,6 +13,7 @@ public function defaultDisplayValue(): string
{
return str($this->value)
->snake()
->replace('-', ' ')
->replace('_', ' ')
->title()
->value();
Expand All @@ -26,9 +27,9 @@ public function displayValue(): string

public static function displayArray(array $displayOnly = []): array
{
$displayValues = sizeof($displayOnly) > 0 ? $displayOnly : self::cases();
$displayValues = count($displayOnly) > 0 ? $displayOnly : self::cases();

if (!method_exists(self::class, 'cases')) {
if (! method_exists(self::class, 'cases')) {
return [];
}

Expand Down
42 changes: 42 additions & 0 deletions app/Data/Auth/PostUserData.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
<?php

namespace App\Data\Auth;

use App\Enums\Roles;
use App\Models\User;
use App\Rules\UsPhoneNumber;
use Spatie\LaravelData\Attributes\Hidden;
use Spatie\LaravelData\Attributes\MapOutputName;
use Spatie\LaravelData\Attributes\Validation\AcceptedIf;
use Spatie\LaravelData\Attributes\Validation\Email;
use Spatie\LaravelData\Attributes\Validation\Enum;
use Spatie\LaravelData\Attributes\Validation\Max;
use Spatie\LaravelData\Attributes\Validation\Password;
use Spatie\LaravelData\Attributes\Validation\Unique;
use Spatie\LaravelData\Data;
use Spatie\LaravelData\Mappers\SnakeCaseMapper;
use Spatie\TypeScriptTransformer\Attributes\Optional;
use Spatie\TypeScriptTransformer\Attributes\TypeScript;

#[TypeScript]
#[MapOutputName(SnakeCaseMapper::class)]
class PostUserData extends Data
{
public function __construct(
#[Max(255)]
public string $firstName,
#[Max(255)]
public string $lastName,
#[Max(255), Email, Unique(User::class)]
public string $email,
#[Max(12), UsPhoneNumber]
public string $phoneNumber,
#[Password, Max(255)]
public string $password,
#[Password, Max(255), AcceptedIf('password', 'equals_this'), Hidden]
public string $passwordConfirmation,
#[Enum(Roles::class), Optional, Hidden]
public ?string $role
) {
}
}
30 changes: 30 additions & 0 deletions app/Data/ChildData.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
<?php

namespace App\Data;

use Carbon\CarbonImmutable;
use Spatie\LaravelData\Attributes\MapInputName;
use Spatie\LaravelData\Data;
use Spatie\LaravelData\Mappers\SnakeCaseMapper;
use Spatie\TypeScriptTransformer\Attributes\TypeScript;

#[TypeScript]
#[MapInputName(SnakeCaseMapper::class)]
class ChildData extends Data
{
public function __construct(
public readonly string $id,
public readonly string $participantId,
public readonly string $firstName,
public readonly string $lastName,
public readonly CarbonImmutable $dateOfBirth,
public readonly ?bool $phoneContact,
public readonly ?bool $custody,
public readonly ?bool $visitation,
public readonly ?string $contact,
public readonly float $childSupport,
public readonly string $createdAt,
public readonly string $updatedAt,
) {
}
}
48 changes: 48 additions & 0 deletions app/Data/ParticipantData.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
<?php

namespace App\Data;

use App\Enums\Ethnicity;
use App\Enums\MaritalStatus;
use App\Rules\UsPhoneNumber;
use Carbon\Carbon;
use Spatie\LaravelData\Attributes\MapInputName;
use Spatie\LaravelData\Attributes\Validation\Enum;
use Spatie\LaravelData\Attributes\Validation\Max;
use Spatie\LaravelData\Attributes\Validation\Uuid;
use Spatie\LaravelData\Attributes\WithCast;
use Spatie\LaravelData\Casts\DateTimeInterfaceCast;
use Spatie\LaravelData\Data;
use Spatie\LaravelData\Mappers\CamelCaseMapper;
use Spatie\TypeScriptTransformer\Attributes\TypeScript;

#[TypeScript]
#[MapInputName(CamelCaseMapper::class)]
class ParticipantData extends Data
{
public function __construct(
public readonly string $id,
public readonly string $userId,
public readonly string $regionId,
public readonly string $addressLine1,
public readonly ?string $addressLine2,
public readonly string $city,
public readonly string $state,
public readonly string $zipcode,
public readonly ?string $employer,
public readonly ?string $cellPhoneNumber,
public readonly ?string $homePhoneNumber,
public readonly ?string $workPhoneNumber,
public readonly ?string $altContactNumber,
public readonly MaritalStatus $maritalStatus,
public readonly Ethnicity $ethnicity,
public readonly ?string $tShirtSize,
public readonly ?string $probationParoleCaseWorkerName,
public readonly ?string $probationParoleCaseWorkerPhone,
public readonly ?string $participantPhoto,
public readonly ?Carbon $intakeDate,
public readonly Carbon $createdAt,
public readonly Carbon $updatedAt,
) {
}
}
20 changes: 20 additions & 0 deletions app/Data/PermissionData.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<?php

namespace App\Data;

use Spatie\LaravelData\Attributes\MapInputName;
use Spatie\LaravelData\Data;
use Spatie\LaravelData\Mappers\SnakeCaseMapper;
use Spatie\TypeScriptTransformer\Attributes\TypeScript;

#[TypeScript]
#[MapInputName(SnakeCaseMapper::class)]
class PermissionData extends Data
{
public function __construct(
public readonly string $id,
public readonly string $name,
public readonly string $guard_name,
) {
}
}
16 changes: 16 additions & 0 deletions app/Data/Props/AuthProp.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<?php

namespace App\Data\Props;

use App\Data\UserData;
use Spatie\LaravelData\Data;
use Spatie\TypeScriptTransformer\Attributes\TypeScript;

#[TypeScript]
class AuthProp extends Data
{
public function __construct(
public ?UserData $user,
) {
}
}
15 changes: 15 additions & 0 deletions app/Data/Props/GuestProp.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?php

namespace App\Data\Props;

use Spatie\LaravelData\Data;
use Spatie\TypeScriptTransformer\Attributes\TypeScript;

#[TypeScript]
class GuestProp extends Data
{
public function __construct(
public null $user,
) {
}
}
19 changes: 19 additions & 0 deletions app/Data/Props/MiddlewareProps.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<?php

namespace App\Data\Props;

use Glhd\Gretel\View\Breadcrumb;
use Spatie\LaravelData\Data;
use Spatie\TypeScriptTransformer\Attributes\TypeScript;

#[TypeScript]
class MiddlewareProps extends Data
{
public function __construct(
public AuthProp $auth,
public RequestProp $request,
public ?ToastProp $toast,
public ?Breadcrumb $breadcrumb,
) {
}
}
13 changes: 13 additions & 0 deletions app/Data/Props/RegionProp.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<?php

namespace App\Data\Props;

use Spatie\LaravelData\Data;
use Spatie\TypeScriptTransformer\Attributes\TypeScript;

#[TypeScript]
class RegionProp extends Data
{
public string $id;
public string $description;
}
20 changes: 20 additions & 0 deletions app/Data/Props/RequestProp.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<?php

namespace App\Data\Props;

use Spatie\LaravelData\Attributes\Validation\Url;
use Spatie\LaravelData\Data;
use Spatie\TypeScriptTransformer\Attributes\TypeScript;

#[TypeScript]
class RequestProp extends Data
{
public function __construct(
#[Url]
public string $location,

/** @var array<string, string> $query */
public array $query
) {
}
}
17 changes: 17 additions & 0 deletions app/Data/Props/ToastProp.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<?php

namespace App\Data\Props;

use App\Enums\ToastType;
use Spatie\LaravelData\Data;
use Spatie\TypeScriptTransformer\Attributes\TypeScript;

#[TypeScript]
class ToastProp extends Data
{
public function __construct(
public string $message,
public ToastType $type
) {
}
}
22 changes: 22 additions & 0 deletions app/Data/RegionData.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<?php

namespace App\Data;

use Carbon\Carbon;
use Spatie\LaravelData\Attributes\MapInputName;
use Spatie\LaravelData\Data;
use Spatie\LaravelData\Mappers\SnakeCaseMapper;
use Spatie\TypeScriptTransformer\Attributes\TypeScript;

#[TypeScript]
#[MapInputName(SnakeCaseMapper::class)]
class RegionData extends Data
{
public function __construct(
public string $id,
public string $description,
public Carbon $createdAt,
public Carbon $updatedAt,
) {
}
}
20 changes: 20 additions & 0 deletions app/Data/RoleData.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<?php

namespace App\Data;

use Spatie\LaravelData\Attributes\MapInputName;
use Spatie\LaravelData\Data;
use Spatie\LaravelData\Mappers\SnakeCaseMapper;
use Spatie\TypeScriptTransformer\Attributes\TypeScript;

#[TypeScript]
#[MapInputName(SnakeCaseMapper::class)]
class RoleData extends Data
{
public function __construct(
public readonly string $id,
public readonly string $name,
public readonly string $guard_name,
) {
}
}
31 changes: 9 additions & 22 deletions app/Data/UserData.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,41 +4,28 @@

use App\Enums\Permissions;
use App\Enums\Roles;
use App\Models\User;
use Carbon\Carbon;
use Spatie\LaravelData\Attributes\MapInputName;
use Spatie\LaravelData\Data;
use Spatie\LaravelData\Mappers\SnakeCaseMapper;
use Spatie\TypeScriptTransformer\Attributes\TypeScript;

#[TypeScript]
#[MapInputName(SnakeCaseMapper::class)]
class UserData extends Data
{
public function __construct(
public string $id,
public string $firstName,
public string $lastName,
public string $email,
/** @var Roles[] $roles */
#[MapInputName('role_names')]
/** @var Roles[] */
public array $roles,
/** @var Permissions[] $permissions */
#[MapInputName('permission_names')]
/** @var Permissions[] */
public array $permissions,
public ?Carbon $createdAt,
public ?Carbon $updatedAt,
public ?string $emailVerifiedAt
public ?string $emailVerifiedAt,
public bool $active,
) {
}

public static function fromModel(User $user): self
{
return new self(
id: $user->id,
firstName: $user->first_name,
lastName: $user->last_name,
email: $user->email,
roles: $user->getRoleNames()->toArray(),
permissions: $user->getAllPermissions()->pluck('name')->toArray(),
createdAt: $user->created_at,
updatedAt: $user->updated_at,
emailVerifiedAt: $user->email_verified_at
);
}
}
Loading
Loading