diff --git a/app/Console/Commands/CreateTestData.php b/app/Console/Commands/CreateTestData.php index 0045796945a9..84400d1a461e 100644 --- a/app/Console/Commands/CreateTestData.php +++ b/app/Console/Commands/CreateTestData.php @@ -332,7 +332,7 @@ class CreateTestData extends Command $this->info('Creating '.$this->count. ' clients'); - for ($x=0; $x<$this->count*1000; $x++) { + for ($x=0; $x<$this->count*500; $x++) { $z = $x+1; $this->info("Creating client # ".$z); diff --git a/app/Http/Controllers/BaseController.php b/app/Http/Controllers/BaseController.php index ccf9ee51c46b..bd25d2e80c7f 100644 --- a/app/Http/Controllers/BaseController.php +++ b/app/Http/Controllers/BaseController.php @@ -186,6 +186,10 @@ class BaseController extends Controller $transformer = new $this->entity_transformer($this->serializer); $updated_at = request()->has('updated_at') ? request()->input('updated_at') : 0; + + if(auth()->user()->getCompany()->is_large && !request()->has('updated_at')) + return response()->json(['message' => 'Cannot load a large account without a updated_at parameter','errors' =>[]],401); + $updated_at = date('Y-m-d H:i:s', $updated_at); $query->with( @@ -202,8 +206,8 @@ class BaseController extends Controller 'company.groups' => function ($query) use($updated_at){ $query->where('updated_at', '>=', $updated_at); }, - 'company.company_gateways' => function ($query) use($updated_at){ - $query->where('updated_at', '>=', $updated_at)->with('gateway'); + 'company.company_gateways' => function ($query){ + $query->whereNotNull('updated_at'); }, 'company.products' => function ($query) use($updated_at){ $query->where('updated_at', '>=', $updated_at); diff --git a/app/Http/Controllers/GroupSettingController.php b/app/Http/Controllers/GroupSettingController.php index 99a2ba559999..a69fc61b2e9b 100644 --- a/app/Http/Controllers/GroupSettingController.php +++ b/app/Http/Controllers/GroupSettingController.php @@ -21,6 +21,7 @@ use App\Http\Requests\GroupSetting\UpdateGroupSettingRequest; use App\Models\GroupSetting; use App\Repositories\GroupSettingRepository; use App\Transformers\GroupSettingTransformer; +use App\Utils\Traits\MakesHash; use App\Utils\Traits\Uploadable; use Illuminate\Foundation\Bus\DispatchesJobs; use Illuminate\Http\Request; @@ -29,7 +30,8 @@ class GroupSettingController extends BaseController { use DispatchesJobs; use Uploadable; - + use MakesHash; + protected $entity_type = GroupSetting::class; protected $entity_transformer = GroupSettingTransformer::class; diff --git a/tests/Feature/GroupSettingTest.php b/tests/Feature/GroupSettingTest.php new file mode 100644 index 000000000000..d720bd823422 --- /dev/null +++ b/tests/Feature/GroupSettingTest.php @@ -0,0 +1,95 @@ +faker = \Faker\Factory::create(); + + Model::reguard(); + + $this->makeTestData(); + } + + public function testAddGroupSettings() + { + $settings = new \stdClass; + $settings->currency_id = 1; + + $data = [ + 'name' => 'test', + 'settings' => $settings + ]; + + $response = $this->withHeaders([ + 'X-API-SECRET' => config('ninja.api_secret'), + 'X-API-TOKEN' => $this->token, + ])->post('/api/v1/group_settings', $data); + + $response->assertStatus(200); + + $arr = $response->json(); + + $this->assertEquals('test', $arr['data']['name']); + $this->assertEquals(0, $arr['data']['archived_at']); + + } + + + public function testArchiveGroupSettings() + { + $settings = new \stdClass; + $settings->currency_id = 1; + + $data = [ + 'name' => 'test', + 'settings' => $settings + ]; + + $response = $this->withHeaders([ + 'X-API-SECRET' => config('ninja.api_secret'), + 'X-API-TOKEN' => $this->token, + ])->post('/api/v1/group_settings', $data); + + $response->assertStatus(200); + + $arr = $response->json(); + + $data = [ + 'action' => 'archive', + 'ids' => [$arr['data']['id']] + ]; + + $response = $this->withHeaders([ + 'X-API-SECRET' => config('ninja.api_secret'), + 'X-API-TOKEN' => $this->token, + ])->post('/api/v1/group_settings/bulk', $data); + + $response->assertStatus(200); + + $arr = $response->json(); + + $this->assertNotNull($arr['data']['archived_at']); + } + +}