refactor promotion rest api