Moved the duplicate checks (#568) to this PR as they are related

This commit is contained in:
Etienne Marais 2019-02-14 17:12:07 +02:00
parent 0cabc92200
commit 33d96905f6
No known key found for this signature in database
GPG Key ID: 5CE3285D17AE9F29
3 changed files with 33 additions and 4 deletions

View File

@ -57,8 +57,20 @@ class EventAccessCodesController extends MyBaseController
]);
}
// Checks for no duplicates
$newAccessCode = strtoupper(strip_tags($request->get('code')));
if (EventAccessCodes::findFromCode($newAccessCode, $event_id)->count() > 0) {
return response()->json([
'status' => 'error',
'messages' => [
'code' => [ trans('AccessCodes.unique_error') ],
],
]);
}
// Saves the new access code if validation and dupe check passed
$eventAccessCode->event_id = $event_id;
$eventAccessCode->code = strtoupper(strip_tags($request->get('code')));
$eventAccessCode->code = $newAccessCode;
$eventAccessCode->save();
session()->flash('message', trans('AccessCodes.success_message'));

View File

@ -2,6 +2,9 @@
namespace App\Models;
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
use Illuminate\Database\Eloquent\SoftDeletes;
class EventAccessCodes extends MyBaseModel
@ -20,6 +23,19 @@ class EventAccessCodes extends MyBaseModel
->increment('usage_count');
}
/**
* @param $code
* @param $event_id
* @return Collection
*/
public static function findFromCode($code, $event_id)
{
return (new static())
->where('code', $code)
->where('event_id', $event_id)
->get();
}
/**
* The validation rules.
*
@ -35,15 +51,15 @@ class EventAccessCodes extends MyBaseModel
/**
* The Event associated with the event access code.
*
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
* @return BelongsTo
*/
public function event()
{
return $this->belongsTo(\App\Models\Event::class, 'event_id', 'id');
return $this->belongsTo(Event::class, 'event_id', 'id');
}
/**
* @return \Illuminate\Database\Eloquent\Relations\BelongsToMany
* @return BelongsToMany
*/
function tickets()
{

View File

@ -15,4 +15,5 @@ return [
'no_tickets_matched' => 'No Tickets matched to your access code',
'select_access_code' => 'Select Access Codes',
'access_codes_usage_count' => 'Usage Count',
'unique_error' => 'Code already used for this event',
];