generalize make_response
use foreignkey resource types, deal with existing and new data separately