Fixes for passing Nordigen locales

This commit is contained in:
David Bomba 2023-12-27 14:05:19 +11:00
parent 057b6401f4
commit b69e9a3ae1
3 changed files with 12 additions and 12 deletions

View File

@ -52,12 +52,12 @@ class Nordigen
}
// requisition-section
public function createRequisition(string $redirect, string $initutionId, string $reference)
public function createRequisition(string $redirect, string $initutionId, string $reference, string $userLanguage)
{
if ($this->test_mode && $initutionId != $this->sandbox_institutionId)
throw new \Exception('invalid institutionId while in test-mode');
return $this->client->requisition->createRequisition($redirect, $initutionId, null, $reference);
return $this->client->requisition->createRequisition($redirect, $initutionId, null, $reference, $userLanguage);
}
public function getRequisition(string $requisitionId)

View File

@ -113,8 +113,8 @@ class TransactionTransformer implements BankRevenueInterface
'transaction_id' => $transaction["transactionId"],
'amount' => abs((int) $transaction["transactionAmount"]["amount"]),
'currency_id' => $this->convertCurrency($transaction["transactionAmount"]["currency"]),
'category_id' => null, // nordigen has no categories
'category_type' => array_key_exists('additionalInformation', $transaction) ? $transaction["additionalInformation"] : null, // TODO: institution specific keys like: GUTSCHRIFT, ABSCHLUSS, MONATSABSCHLUSS etc
'category_id' => null,
'category_type' => array_key_exists('additionalInformation', $transaction) ? $transaction["additionalInformation"] : '',
'date' => $transaction["bookingDate"],
'description' => $description,
'participant' => $participant,

View File

@ -34,7 +34,8 @@ class NordigenController extends BaseController
/** @var array $context */
$context = $request->getTokenContent();
$lang = $data['lang'] ?? 'en';
$company = $request->getCompany();
$lang = $company->locale();
$context["lang"] = $lang;
if (!$context)
@ -87,7 +88,7 @@ class NordigenController extends BaseController
// redirect to requisition flow
try {
$requisition = $nordigen->createRequisition(config('ninja.app_url') . '/nordigen/confirm', $data['institution_id'], $request->token);
$requisition = $nordigen->createRequisition(config('ninja.app_url') . '/nordigen/confirm', $data['institution_id'], $request->token, $lang);
} catch (NordigenException $e) { // TODO: property_exists returns null in these cases... => why => therefore we just get unknown error everytime $responseBody is typeof GuzzleHttp\Psr7\Stream
$responseBody = (string) $e->getResponse()->getBody();
@ -135,12 +136,14 @@ class NordigenController extends BaseController
public function confirm(ConfirmNordigenBankIntegrationRequest $request)
{
$data = $request->all();
$company = $request->getCompany();
$account = $company->account;
$lang = $company->locale();
/** @var array $context */
$context = $request->getTokenContent();
if (!array_key_exists('lang', $data) && $context['lang'] != 'en')
return redirect()->route('nordigen.confirm', array_merge(["lang" => $context['lang']], $request->query())); // redirect is required in order for the bank-ui to display everything properly
$lang = $data['lang'] ?? 'en';
return redirect()->route('nordigen.confirm', array_merge(["lang" => $context['lang']], $request->query()));
if (!$context || $context["context"] != "nordigen" || !array_key_exists("requisitionId", $context))
return view('bank.nordigen.handler', [
@ -149,9 +152,6 @@ class NordigenController extends BaseController
"redirectUrl" => ($context && array_key_exists("redirect", $context) ? $context["redirect"] : config('ninja.app_url')) . "?action=nordigen_connect&status=failed&reason=ref-invalid",
]);
$company = $request->getCompany();
$account = $company->account;
if (!(config('ninja.nordigen.secret_id') && config('ninja.nordigen.secret_key')))
return view('bank.nordigen.handler', [
'lang' => $lang,