This feels like something the Comment API should do, but maybe it's fine in this case as we'll be calling an internal function after the content api refactor.