Just realised 'codes' are a inside 'campaigns'. Its ok for it to be a separate module for now but URLs should be /campaign/<id>/codes and /campaign/<id>/codes/<code>