Skip to content

Commit

Permalink
Group service and resource
Browse files Browse the repository at this point in the history
  • Loading branch information
nelkasovic committed Aug 23, 2021
1 parent 833a558 commit 788aa34
Show file tree
Hide file tree
Showing 10 changed files with 138 additions and 0 deletions.
2 changes: 2 additions & 0 deletions src/Facades/MoodleCourse.php
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand All @@ -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
Expand Down
22 changes: 22 additions & 0 deletions src/Facades/MoodleGroup.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<?php

namespace Wimando\LaravelMoodle\Facades;

use Illuminate\Support\Facades\Facade;
use Wimando\LaravelMoodle\Resources\GroupResource;
use Wimando\LaravelMoodle\Resources\GroupResourceCollection;
use Wimando\LaravelMoodle\Resources\UserResourceCollection;

/**
* @method static GroupResource getById(int $moodleGroupId)
* @method static GroupResourceCollection getCourseGroups(int $moodleCourseId)
* @method static UserResourceCollection getGroupMembers(int $moodleGroupId)
* @method static GroupResourceCollection delete(array $ids = [])
*/
class MoodleGroup extends Facade
{
protected static function getFacadeAccessor(): string
{
return \Wimando\LaravelMoodle\Services\GroupService::class;
}
}
10 changes: 10 additions & 0 deletions src/Resources/EnrolmentMethodResource.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<?php

namespace Wimando\LaravelMoodle\Resources;

use Illuminate\Http\Resources\Json\JsonResource;

class EnrolmentMethodResource extends JsonResource
{

}
10 changes: 10 additions & 0 deletions src/Resources/EnrolmentMethodResourceCollection.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<?php

namespace Wimando\LaravelMoodle\Resources;

use Illuminate\Http\Resources\Json\ResourceCollection;

class EnrolmentMethodResourceCollection extends ResourceCollection
{

}
10 changes: 10 additions & 0 deletions src/Resources/EnrolmentResource.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<?php

namespace Wimando\LaravelMoodle\Resources;

use Illuminate\Http\Resources\Json\JsonResource;

class EnrolmentResource extends JsonResource
{

}
10 changes: 10 additions & 0 deletions src/Resources/EnrolmentResourceCollection.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<?php

namespace Wimando\LaravelMoodle\Resources;

use Illuminate\Http\Resources\Json\ResourceCollection;

class EnrolmentResourceCollection extends ResourceCollection
{

}
10 changes: 10 additions & 0 deletions src/Resources/UserResource.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<?php

namespace Wimando\LaravelMoodle\Resources;

use Illuminate\Http\Resources\Json\JsonResource;

class UserResource extends JsonResource
{

}
10 changes: 10 additions & 0 deletions src/Resources/UserResourceCollection.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<?php

namespace Wimando\LaravelMoodle\Resources;

use Illuminate\Http\Resources\Json\ResourceCollection;

class UserResourceCollection extends ResourceCollection
{

}
10 changes: 10 additions & 0 deletions src/Services/CourseService.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
use App\Facades\Services\MoodleService;
use Wimando\LaravelMoodle\Entities\Dto\Course as CourseDto;
use Wimando\LaravelMoodle\Resources\CourseResourceCollection;
use Wimando\LaravelMoodle\Resources\EnrolmentMethodResourceCollection;
use Wimando\LaravelMoodle\Resources\GroupResourceCollection;

class CourseService extends Service
Expand Down Expand Up @@ -50,6 +51,15 @@ public function create(CourseDto ...$courses): CourseResourceCollection
return CourseResourceCollection::make($response);
}

public function getEnrollmentMethods(int $moodleCourseId): EnrolmentMethodResourceCollection
{
$arguments = ['courseid' => $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]);
Expand Down
44 changes: 44 additions & 0 deletions src/Services/GroupService.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
<?php

namespace Wimando\LaravelMoodle\Services;

use Illuminate\Support\Arr;
use Wimando\LaravelMoodle\Resources\GroupResource;
use Wimando\LaravelMoodle\Resources\GroupResourceCollection;
use Wimando\LaravelMoodle\Resources\UserResourceCollection;

class GroupService extends Service
{
public function getById(int $moodleGroupId): GroupResource
{
$arguments = ['groupids' => $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);
}
}

0 comments on commit 788aa34

Please sign in to comment.