Bristol SU Support Package
DefaultActivityInstanceGenerator.php
Go to the documentation of this file.
1 <?php
2 
4 
7 use BristolSU\Support\ActivityInstance\Contracts\DefaultActivityInstanceGenerator as DefaultActivityInstanceGeneratorContract;
9 
13 class DefaultActivityInstanceGenerator implements DefaultActivityInstanceGeneratorContract
14 {
15 
21  private $repository;
22 
29  {
30  $this->repository = $repository;
31  }
32 
45  public function generate(Activity $activity, string $resourceType, string $resourceId): ActivityInstance
46  {
47  try {
48  $activityInstance = $this->repository->firstFor($activity->id, $resourceType, $resourceId);
49  } catch (ModelNotFoundException $e) {
50  $activityInstance = $this->repository->create($activity->id, $resourceType, $resourceId, $activity->name,
51  'Default activity instance for activity '.$activity->name.' (#'.$activity->id.')');
52  }
53  return $activityInstance;
54  }
55 }
generate(Activity $activity, string $resourceType, string $resourceId)