From 788aa34612bbed8410c9dfae64e41ebad951be59 Mon Sep 17 00:00:00 2001 From: Nermin Elkasovic Date: Mon, 23 Aug 2021 13:08:43 +0200 Subject: [PATCH] Group service and resource --- src/Facades/MoodleCourse.php | 2 + src/Facades/MoodleGroup.php | 22 ++++++++++ src/Resources/EnrolmentMethodResource.php | 10 +++++ .../EnrolmentMethodResourceCollection.php | 10 +++++ src/Resources/EnrolmentResource.php | 10 +++++ src/Resources/EnrolmentResourceCollection.php | 10 +++++ src/Resources/UserResource.php | 10 +++++ src/Resources/UserResourceCollection.php | 10 +++++ src/Services/CourseService.php | 10 +++++ src/Services/GroupService.php | 44 +++++++++++++++++++ 10 files changed, 138 insertions(+) create mode 100644 src/Facades/MoodleGroup.php create mode 100644 src/Resources/EnrolmentMethodResource.php create mode 100644 src/Resources/EnrolmentMethodResourceCollection.php create mode 100644 src/Resources/EnrolmentResource.php create mode 100644 src/Resources/EnrolmentResourceCollection.php create mode 100644 src/Resources/UserResource.php create mode 100644 src/Resources/UserResourceCollection.php create mode 100644 src/Services/GroupService.php diff --git a/src/Facades/MoodleCourse.php b/src/Facades/MoodleCourse.php index 6bf61b8..8012dfa 100644 --- a/src/Facades/MoodleCourse.php +++ b/src/Facades/MoodleCourse.php @@ -6,6 +6,7 @@ use Wimando\LaravelMoodle\Clients\ClientAdapterInterface; use Wimando\LaravelMoodle\Entities\Dto\Course as CourseDto; use Wimando\LaravelMoodle\Resources\CourseResourceCollection; +use Wimando\LaravelMoodle\Resources\EnrolmentMethodResourceCollection; use Wimando\LaravelMoodle\Resources\GroupResourceCollection; use Wimando\LaravelMoodle\Services\CourseService; @@ -15,6 +16,7 @@ * @method static CourseResourceCollection getByField(string $field, string $value) * @method static GroupResourceCollection getCourseGroups(int $moodleCourseId) * @method static CourseResourceCollection create(CourseDto ...$courses) + * @method static EnrolmentMethodResourceCollection getEnrollmentMethods(int $moodleCourseId) * @method static mixed delete(array $ids = []) */ class MoodleCourse extends Facade diff --git a/src/Facades/MoodleGroup.php b/src/Facades/MoodleGroup.php new file mode 100644 index 0000000..4ae9724 --- /dev/null +++ b/src/Facades/MoodleGroup.php @@ -0,0 +1,22 @@ + $moodleCourseId]; + + $response = $this->sendRequest('core_enrol_get_course_enrolment_methods', $arguments); + + return EnrolmentMethodResourceCollection::make($response); + } + public function delete(array $ids = []): array { return $this->sendRequest('core_course_delete_courses', ['courseids' => $ids]); diff --git a/src/Services/GroupService.php b/src/Services/GroupService.php new file mode 100644 index 0000000..dba45bc --- /dev/null +++ b/src/Services/GroupService.php @@ -0,0 +1,44 @@ + $moodleGroupId]; + + $response = $this->sendRequest('core_group_get_groups', $arguments); + + return GroupResource::make(Arr::first($response)); + } + + public function getCourseGroups(int $moodleCourseId): GroupResourceCollection + { + $arguments = ['courseid' => $moodleCourseId]; + + $response = $this->sendRequest('core_group_get_course_groups', $arguments); + + return GroupResourceCollection::make($response); + } + + public function getGroupMembers(int $moodleGroupId): UserResourceCollection + { + $arguments = ['groupids' => [$moodleGroupId]]; + $response = $this->sendRequest('core_group_get_group_members', $arguments); + + return UserResourceCollection::make($response); + } + + public function delete(array $ids = []): GroupResourceCollection + { + $response = $this->sendRequest('core_group_delete_groups', ['groupids' => $ids]); + + return GroupResourceCollection::make($response); + } +}