1515use Meilisearch \Contracts \TaskDetails \SettingsUpdateDetails ;
1616use Meilisearch \Contracts \TaskDetails \TaskCancelationDetails ;
1717use Meilisearch \Contracts \TaskDetails \TaskDeletionDetails ;
18+ use Meilisearch \Contracts \TaskDetails \UnknownTaskDetails ;
1819use Meilisearch \Exceptions \LogicException ;
1920
2021final class Task
@@ -150,12 +151,13 @@ public function wait(int $timeoutInMs = 5000, int $intervalInMs = 50): Task
150151 public static function fromArray (array $ data , ?\Closure $ await = null ): Task
151152 {
152153 $ details = $ data ['details ' ] ?? null ;
154+ $ type = TaskType::tryFrom ($ data ['type ' ]) ?? TaskType::Unknown;
153155
154156 return new self (
155157 $ data ['taskUid ' ] ?? $ data ['uid ' ],
156158 $ data ['indexUid ' ] ?? null ,
157- TaskStatus::from ($ data ['status ' ]),
158- $ type = TaskType:: from ( $ data [ ' type ' ]) ,
159+ TaskStatus::tryFrom ($ data ['status ' ]) ?? TaskStatus::Unknown ,
160+ $ type ,
159161 new \DateTimeImmutable ($ data ['enqueuedAt ' ]),
160162 \array_key_exists ('startedAt ' , $ data ) && null !== $ data ['startedAt ' ] ? new \DateTimeImmutable ($ data ['startedAt ' ]) : null ,
161163 \array_key_exists ('finishedAt ' , $ data ) && null !== $ data ['finishedAt ' ] ? new \DateTimeImmutable ($ data ['finishedAt ' ]) : null ,
@@ -177,6 +179,7 @@ public static function fromArray(array $data, ?\Closure $await = null): Task
177179 // It’s intentional that SnapshotCreation tasks don’t have a details object
178180 // (no SnapshotCreationDetails exists and tests don’t exercise any details)
179181 TaskType::SnapshotCreation => null ,
182+ TaskType::Unknown => UnknownTaskDetails::fromArray ($ details ),
180183 },
181184 \array_key_exists ('error ' , $ data ) && null !== $ data ['error ' ] ? TaskError::fromArray ($ data ['error ' ]) : null ,
182185 $ await ,
0 commit comments