Fix on reassign attendee tix
tix was not assigned correctly to new attendee Change-Id: I378573d456b3db16fae944c1673de50f9799beab
This commit is contained in:
parent
6688606abe
commit
8ffec4ed79
@ -201,7 +201,6 @@ Route::group([
|
|||||||
Route::delete('', [ 'middleware' => 'auth.user:administrators|summit-front-end-administrators', 'uses' => 'OAuth2SummitAttendeesApiController@deleteAttendeeTicket']);
|
Route::delete('', [ 'middleware' => 'auth.user:administrators|summit-front-end-administrators', 'uses' => 'OAuth2SummitAttendeesApiController@deleteAttendeeTicket']);
|
||||||
Route::put('reassign/{other_member_id}', [ 'middleware' => 'auth.user:administrators|summit-front-end-administrators', 'uses' => 'OAuth2SummitAttendeesApiController@reassignAttendeeTicket']);
|
Route::put('reassign/{other_member_id}', [ 'middleware' => 'auth.user:administrators|summit-front-end-administrators', 'uses' => 'OAuth2SummitAttendeesApiController@reassignAttendeeTicket']);
|
||||||
});
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -118,7 +118,7 @@ class SummitAttendee extends SilverstripeBaseModel
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ORM\OneToMany(targetEntity="SummitAttendeeTicket", mappedBy="owner", cascade={"persist"}, orphanRemoval=true)
|
* @ORM\OneToMany(targetEntity="SummitAttendeeTicket", mappedBy="owner", cascade={"persist", "remove"})
|
||||||
* @var SummitAttendeeTicket[]
|
* @var SummitAttendeeTicket[]
|
||||||
*/
|
*/
|
||||||
private $tickets;
|
private $tickets;
|
||||||
|
@ -30,6 +30,7 @@ final class SummitAttendeeTicketFactory
|
|||||||
public static function build(SummitAttendee $attendee, SummitTicketType $type, array $data){
|
public static function build(SummitAttendee $attendee, SummitTicketType $type, array $data){
|
||||||
$ticket = new SummitAttendeeTicket();
|
$ticket = new SummitAttendeeTicket();
|
||||||
$attendee->addTicket($ticket);
|
$attendee->addTicket($ticket);
|
||||||
|
|
||||||
if(isset($data['external_order_id']))
|
if(isset($data['external_order_id']))
|
||||||
$ticket->setExternalOrderId($data['external_order_id']);
|
$ticket->setExternalOrderId($data['external_order_id']);
|
||||||
if(isset($data['external_attendee_id']))
|
if(isset($data['external_attendee_id']))
|
||||||
|
@ -311,13 +311,17 @@ final class AttendeeService extends AbstractService implements IAttendeeService
|
|||||||
if(is_null($ticket)){
|
if(is_null($ticket)){
|
||||||
throw new EntityNotFoundException("ticket not found");
|
throw new EntityNotFoundException("ticket not found");
|
||||||
}
|
}
|
||||||
|
|
||||||
$new_owner = $this->attendee_repository->getBySummitAndMember($summit, $other_member);
|
$new_owner = $this->attendee_repository->getBySummitAndMember($summit, $other_member);
|
||||||
if(is_null($new_owner)){
|
if(is_null($new_owner)){
|
||||||
$new_owner = SummitAttendeeFactory::build($summit, $other_member, []);
|
$new_owner = SummitAttendeeFactory::build($summit, $other_member, []);
|
||||||
$this->attendee_repository->add($new_owner);
|
$this->attendee_repository->add($new_owner);
|
||||||
}
|
}
|
||||||
$new_owner->addTicket($ticket);
|
|
||||||
$attendee->removeTicket($ticket);
|
$attendee->removeTicket($ticket);
|
||||||
|
|
||||||
|
$new_owner->addTicket($ticket);
|
||||||
|
|
||||||
if(!$attendee->hasTickets()){
|
if(!$attendee->hasTickets()){
|
||||||
$this->attendee_repository->delete($attendee);
|
$this->attendee_repository->delete($attendee);
|
||||||
}
|
}
|
||||||
|
@ -292,4 +292,35 @@ class OAuth2AttendeesApiTest extends ProtectedApiTest
|
|||||||
|
|
||||||
$this->assertResponseStatus(204);
|
$this->assertResponseStatus(204);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testReassignAttendeeTicket($summit_id = 25){
|
||||||
|
$params = [
|
||||||
|
'id' => $summit_id,
|
||||||
|
'attendee_id' => 14938,
|
||||||
|
'ticket_id' => 15070,
|
||||||
|
'other_member_id' => 13867,
|
||||||
|
];
|
||||||
|
|
||||||
|
$headers = [
|
||||||
|
"HTTP_Authorization" => " Bearer " . $this->access_token,
|
||||||
|
"CONTENT_TYPE" => "application/json"
|
||||||
|
];
|
||||||
|
|
||||||
|
$response = $this->action(
|
||||||
|
"PUT",
|
||||||
|
"OAuth2SummitAttendeesApiController@reassignAttendeeTicket",
|
||||||
|
$params,
|
||||||
|
[],
|
||||||
|
[],
|
||||||
|
[],
|
||||||
|
$headers,
|
||||||
|
''
|
||||||
|
);
|
||||||
|
|
||||||
|
$content = $response->getContent();
|
||||||
|
$this->assertResponseStatus(201);
|
||||||
|
$ticket = json_decode($content);
|
||||||
|
$this->assertTrue(!is_null($ticket));
|
||||||
|
return $ticket;
|
||||||
|
}
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user