diff --git a/r2/r2/controllers/api.py b/r2/r2/controllers/api.py index 3f968aa0b..e9305fb8a 100755 --- a/r2/r2/controllers/api.py +++ b/r2/r2/controllers/api.py @@ -1731,7 +1731,7 @@ class ApiController(RedditController, OAuth2ResourceController): rate_ip = True, prefix = 'create_reddit_'), sr = VByName('sr'), - name = VSubredditName("name"), + name = VAvailableSubredditName("name"), title = VLength("title", max_length = 100), header_title = VLength("header-title", max_length = 500), domain = VCnameDomain("domain"), diff --git a/r2/r2/lib/validator/validator.py b/r2/r2/lib/validator/validator.py index 359d1210f..f33ae50fa 100644 --- a/r2/r2/lib/validator/validator.py +++ b/r2/r2/lib/validator/validator.py @@ -618,7 +618,18 @@ class VSubredditName(VRequired): name = chksrname(name) if not name: return self.error() - else: + return name + + def param_docs(self): + return { + self.param: "subreddit name", + } + + +class VAvailableSubredditName(VSubredditName): + def run(self, name): + name = VSubredditName.run(self, name) + if name: try: a = Subreddit._by_name(name) return self.error(errors.SUBREDDIT_EXISTS)