Skip to content

Commit

Permalink
Add model fields to course model (#320)
Browse files Browse the repository at this point in the history
* Add model fields to course model

* fix tests

* fix tests
  • Loading branch information
daVitekPL authored Mar 18, 2024
1 parent b823ba9 commit 75609cc
Show file tree
Hide file tree
Showing 9 changed files with 217 additions and 41 deletions.
3 changes: 2 additions & 1 deletion src/Http/Requests/CreateCourseAPIRequest.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

use EscolaLms\Courses\Models\Course;
use EscolaLms\Courses\Rules\ValidAuthor;
use EscolaLms\ModelFields\Facades\ModelFields;
use Illuminate\Foundation\Http\FormRequest;

class CreateCourseAPIRequest extends FormRequest
Expand All @@ -28,7 +29,7 @@ public function rules(): array
{
$rules = array_merge(Course::rules(), [
'title' => ['required', 'string', "min:3"],
]);
], ModelFields::getFieldsMetadataRules(Course::class));
$rules['authors.*'][] = new ValidAuthor();
return $rules;
}
Expand Down
3 changes: 2 additions & 1 deletion src/Http/Requests/UpdateCourseAPIRequest.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
use EscolaLms\Courses\Models\Course;
use EscolaLms\Courses\Rules\ValidAuthor;
use EscolaLms\Files\Rules\FileOrStringRule;
use EscolaLms\ModelFields\Facades\ModelFields;
use Illuminate\Foundation\Http\FormRequest;

class UpdateCourseAPIRequest extends FormRequest
Expand Down Expand Up @@ -36,6 +37,6 @@ public function rules()
'image' => [new FileOrStringRule(['image'], $prefixPath)],
'video' => [new FileOrStringRule(['mimes:mp4,ogg,webm'], $prefixPath)],
'poster' => [new FileOrStringRule(['image'], $prefixPath)],
]);
], ModelFields::getFieldsMetadataRules(Course::class));
}
}
3 changes: 3 additions & 0 deletions src/Http/Resources/Admin/CourseWithProgramAdminResource.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@
use EscolaLms\Courses\Http\Resources\ScormScoResource;
use EscolaLms\Courses\Http\Resources\TutorResource;
use EscolaLms\Courses\Models\Course;
use EscolaLms\ModelFields\Enum\MetaFieldVisibilityEnum;
use EscolaLms\ModelFields\Facades\ModelFields;
use Illuminate\Http\Resources\Json\JsonResource;

class CourseWithProgramAdminResource extends JsonResource
Expand Down Expand Up @@ -61,6 +63,7 @@ public function toArray($request): array
'target_group' => $course->target_group,
'teaser_url' => $course->teaser_url,
'public' => $course->public,
...ModelFields::getExtraAttributesValues($this->resource, MetaFieldVisibilityEnum::PUBLIC),
];

return self::apply($fields, $this);
Expand Down
3 changes: 3 additions & 0 deletions src/Http/Resources/CourseListResource.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
namespace EscolaLms\Courses\Http\Resources;

use EscolaLms\Auth\Traits\ResourceExtandable;
use EscolaLms\ModelFields\Enum\MetaFieldVisibilityEnum;
use EscolaLms\ModelFields\Facades\ModelFields;
use Illuminate\Http\Resources\Json\JsonResource;

class CourseListResource extends JsonResource
Expand Down Expand Up @@ -43,6 +45,7 @@ public function toArray($request)
'poster_url' => $this->poster_url,
'teaser_url' => $this->teaser_url,
'public' => $this->public ?? false,
...ModelFields::getExtraAttributesValues($this->resource, MetaFieldVisibilityEnum::PUBLIC),
];

return self::apply($fields, $this);
Expand Down
3 changes: 3 additions & 0 deletions src/Http/Resources/CourseSimpleResource.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
namespace EscolaLms\Courses\Http\Resources;

use EscolaLms\Auth\Traits\ResourceExtandable;
use EscolaLms\ModelFields\Enum\MetaFieldVisibilityEnum;
use EscolaLms\ModelFields\Facades\ModelFields;
use Illuminate\Http\Resources\Json\JsonResource;

class CourseSimpleResource extends JsonResource
Expand Down Expand Up @@ -44,6 +46,7 @@ public function toArray($request)
'poster_url' => $this->poster_url,
'teaser_url' => $this->teaser_url,
'public' => $this->public ?? false,
...ModelFields::getExtraAttributesValues($this->resource, MetaFieldVisibilityEnum::PUBLIC),
];
return self::apply($fields, $this);
}
Expand Down
3 changes: 3 additions & 0 deletions src/Http/Resources/CourseWithProgramResource.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
use EscolaLms\Courses\Models\Course;
use EscolaLms\Courses\Models\Lesson;
use EscolaLms\Courses\ValueObjects\CourseProgressCollection;
use EscolaLms\ModelFields\Enum\MetaFieldVisibilityEnum;
use EscolaLms\ModelFields\Facades\ModelFields;
use Illuminate\Http\Resources\Json\JsonResource;

class CourseWithProgramResource extends JsonResource
Expand Down Expand Up @@ -58,6 +60,7 @@ public function toArray($request): array
'target_group' => $course->target_group,
'teaser_url' => $course->teaser_url,
'public' => $this->public ?? false,
...ModelFields::getExtraAttributesValues($this->resource, MetaFieldVisibilityEnum::PUBLIC),
];
}
}
5 changes: 4 additions & 1 deletion src/Models/Course.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
use EscolaLms\Courses\Enum\CourseStatusEnum;
use EscolaLms\Courses\Enum\PlatformVisibility;
use EscolaLms\Courses\Events\CourseStatusChanged;
use EscolaLms\ModelFields\Traits\ModelFields;
use EscolaLms\Tags\Models\Tag;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Factories\HasFactory;
Expand Down Expand Up @@ -166,7 +167,9 @@

class Course extends Model
{
use HasFactory, QueryCacheable;
use HasFactory;
use QueryCacheable;
use ModelFields;

public $table = 'courses';

Expand Down
Loading

0 comments on commit 75609cc

Please sign in to comment.