func (hub *DeploymentEventHub) buildDeploymentEvent(s models.DeploymentState, d *models.Deployment) (*DeploymentEvent, error) {
	user, err := getUser(hub.db, d.UserId)
	if err != nil {
		return nil, err
	}
	d.User = user

	application, err := findApplication(d.ApplicationName)
	if err != nil {
		return nil, err
	}

	target, err := findTarget(application, d.TargetName)
	if err != nil {
		return nil, err
	}

	event := &DeploymentEvent{
		State:       s,
		Deployment:  d,
		Application: application,
		Target:      target,
		User:        user,
	}

	return event, nil
}