$expenseTypes */ $expenseTypes = []; /** @var \Modules\BusinessExpenses\Controller\ApiController $module */ $module = $app->moduleManager->get('BusinessExpenses'); /** @var array $type */ foreach ($types as $type) { $response = new HttpResponse(); $request = new HttpRequest(); $request->header->account = 1; $request->setData('name', $type['name'] ?? ''); $request->setData('content', \reset($type['l11n'])); $request->setData('language', \array_keys($type['l11n'])[0] ?? 'en'); $module->apiExpenseTypeCreate($request, $response); $responseData = $response->getData(''); if (!\is_array($responseData)) { continue; } $expenseTypes[$type['name']] = \is_array($responseData['response']) ? $responseData['response'] : $responseData['response']->toArray(); $isFirst = true; foreach ($type['l11n'] as $language => $l11n) { if ($isFirst) { $isFirst = false; continue; } $response = new HttpResponse(); $request = new HttpRequest(); $request->header->account = 1; $request->setData('content', $l11n); $request->setData('language', $language); $request->setData('ref', $expenseTypes[$type['name']]['id']); $module->apiExpenseTypeL11nCreate($request, $response); } } return $expenseTypes; } /** * Install fuel type * * @param ApplicationAbstract $app Application * @param array $types Type definition * * @return array * * @since 1.0.0 */ private static function createExpenseElementTypes(ApplicationAbstract $app, array $types) : array { /** @var array $elementTypes */ $elementTypes = []; /** @var \Modules\BusinessExpenses\Controller\ApiController $module */ $module = $app->moduleManager->get('BusinessExpenses'); /** @var array $type */ foreach ($types as $type) { $response = new HttpResponse(); $request = new HttpRequest(); $request->header->account = 1; $request->setData('name', $type['name'] ?? ''); $request->setData('content', \reset($type['l11n'])); $request->setData('language', \array_keys($type['l11n'])[0] ?? 'en'); $module->apiExpenseElementTypeCreate($request, $response); $responseData = $response->getData(''); if (!\is_array($responseData)) { continue; } $elementTypes[$type['name']] = \is_array($responseData['response']) ? $responseData['response'] : $responseData['response']->toArray(); $isFirst = true; foreach ($type['l11n'] as $language => $l11n) { if ($isFirst) { $isFirst = false; continue; } $response = new HttpResponse(); $request = new HttpRequest(); $request->header->account = 1; $request->setData('content', $l11n); $request->setData('language', $language); $request->setData('ref', $elementTypes[$type['name']]['id']); $module->apiExpenseElementTypeL11nCreate($request, $response); } } return $elementTypes; } }