. */ namespace App\Services\LogSystem; /** * This service is used to check if a log change comment is needed for a given operation type. * It is configured using the "enforce_change_comments_for" config parameter. */ class EventCommentNeededHelper { protected array $enforce_change_comments_for; public const VALID_OPERATION_TYPES = [ 'part_edit', 'part_create', 'part_delete', 'part_stock_operation', 'datastructure_edit', 'datastructure_create', 'datastructure_delete', ]; public function __construct(array $enforce_change_comments_for) { $this->enforce_change_comments_for = $enforce_change_comments_for; } /** * Checks if a log change comment is needed for the given operation type * @param string $comment_type * @return bool */ public function isCommentNeeded(string $comment_type): bool { //Check if the comment type is valid if (! in_array($comment_type, self::VALID_OPERATION_TYPES, true)) { throw new \InvalidArgumentException('The comment type "'.$comment_type.'" is not valid!'); } return in_array($comment_type, $this->enforce_change_comments_for, true); } }