Merge pull request #890 from openclassify/vedat

Created Twig Functions
This commit is contained in:
spektra2147 2021-01-04 17:10:39 +03:00 committed by GitHub
commit 4c81790ab5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 72 additions and 36 deletions

View File

@ -1,9 +1,9 @@
<?php namespace Visiosoft\AdvsModule\Adv;
use Anomaly\Streams\Platform\Image\Command\MakeImageInstance;
use Anomaly\Streams\Platform\Message\MessageBag;
use Anomaly\Streams\Platform\Model\Advs\AdvsCustomFieldsEntryModel;
use Carbon\Carbon;
use GuzzleHttp\Client;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;
use Visiosoft\AdvsModule\Adv\Contract\AdvInterface;
@ -112,10 +112,9 @@ class AdvModel extends AdvsAdvsEntryModel implements AdvInterface
public function foreignCurrency($currency, $price, $isUpdate, $settings)
{
$currencies = setting_value('visiosoft.module.advs::enabled_currencies');
$messages = app(MessageBag::class);
$foreign_currency = array();
$client = new Client();
foreach ($currencies as $currencyIn) {
if ($currencyIn == $currency) {
$foreign_currency[$currency] = (int)$price;
@ -123,8 +122,14 @@ class AdvModel extends AdvsAdvsEntryModel implements AdvInterface
try {
$url = $currency . "_" . $currencyIn;
$freeCurrencyKey = $settings->value('visiosoft.module.advs::free_currencyconverterapi_key');
$response = $client->get('http://free.currencyconverterapi.com/api/v6/convert?q='
. $url . '&compact=y&apiKey=' . $freeCurrencyKey);
$client = new \GuzzleHttp\Client();
$response = $client->request('GET', 'http://free.currencyconverterapi.com/api/v6/convert', ['query' => [
'q' => $url,
'compact' => 'y',
'apiKey' => $freeCurrencyKey
]]);
if ($response->getStatusCode() == '200') {
$response = (array)\GuzzleHttp\json_decode($response->getBody()->getContents());
if (!empty($response)) {
@ -132,8 +137,11 @@ class AdvModel extends AdvsAdvsEntryModel implements AdvInterface
$foreign_currency[$currencyIn] = $price * $rate;
}
}
} catch (\Exception $e) {
$this->messages->error((!is_null($e->getMessage())) ? $e->getMessage() : trans('streams::error.500.message'));
} catch (\GuzzleHttp\Exception\ClientException $e) {
$response = $e->getResponse();
$responseBodyAsString = $response->getBody()->getContents();
$response = json_decode($responseBodyAsString, true);
$messages->error($response['error']);
}
}
}

View File

@ -102,20 +102,26 @@ class AdvRepository extends EntryRepository implements AdvRepositoryInterface
if (!empty($param['user'])) {
$query = $query->where('advs_advs.created_by_id', $param['user']);
}
$currency = setting_value('streams::currency');
if (!empty($param['currency'])) {
if (!empty($param['min_price'])) {
$num = $param['min_price'];
$int = (int)$num;
$column = "JSON_EXTRACT(foreign_currencies, '$." . $param['currency'] . "') >=" . $int;
$query = $query->whereRaw($column);
}
if (!empty($param['max_price'])) {
$num = $param['max_price'];
$int = (int)$num;
$column = "JSON_EXTRACT(foreign_currencies, '$." . $param['currency'] . "') <=" . $int;
$query = $query->whereRaw($column);
}
$currency = $param['currency'];
}
if (!empty($param['min_price'])) {
$num = $param['min_price'];
$int = (int)$num;
$column = "JSON_EXTRACT(foreign_currencies, '$." . $currency . "') >= " . $int;
$query = $query->whereRaw($column);
}
if (!empty($param['max_price'])) {
$num = $param['max_price'];
$int = (int)$num;
$column = "JSON_EXTRACT(foreign_currencies, '$." . $currency . "') <= " . $int;
$query = $query->whereRaw($column);
}
if (!empty($param['date'])) {
if ($param['date'] === 'day') {
$query = $query->where('advs_advs.publish_at', '>=', Carbon::now()->subDay());

View File

@ -13,7 +13,9 @@ class ConvertCurrency extends ActionHandler
foreach ($selected as $id) {
$entry = $model->newQuery()->find($id);
$model->foreignCurrency($entry->currency, $entry->price, $id, $settingRepository);
if ($entry) {
$model->foreignCurrency($entry->currency, $entry->price, $id, $settingRepository);
}
}
if ($selected) {
$this->messages->success(trans('visiosoft.module.advs::message.currency_converted'));

View File

@ -120,4 +120,22 @@ class AdvsModulePlugin extends Plugin
),
];
}
/**
* Get the filters.
*
* @return array
*/
public function getFilters()
{
return [
new \Twig_SimpleFilter(
'ksort',
function (array $array) {
ksort($array);
return $array;
}
),
];
}
}

View File

@ -43,21 +43,5 @@ class ProfileModuleSeeder extends Seeder
{
// Users Fields Seeder
$this->call(UsersFieldsSeeder::class);
if (is_null($this->folders->findBy('slug', 'favicon'))) {
$disk = $this->disks->findBySlug('local');
$this->folders->create([
'en' => [
'name' => 'Favicon',
'description' => 'A folder for Favicon.',
],
'slug' => 'favicon',
'disk' => $disk,
'allowed_types' => [
'ico','png',
],
]);
};
}
}

View File

@ -156,5 +156,23 @@ class DatabaseSeeder extends Seeder
],
]);
}
//Favicon Folder
if (is_null($this->folders->findBy('slug', 'favicon'))) {
$disk = $this->disks->findBySlug('local');
$this->folders->create([
'en' => [
'name' => 'Favicon',
'description' => 'A folder for Favicon.',
],
'slug' => 'favicon',
'disk' => $disk,
'allowed_types' => [
'ico','png',
],
]);
};
}
}