def post(self, *args, **kwargs): if 'user' not in kwargs or args: self.raise401() grant_type = self.get_argument('grant_type', None) response_type = self.get_argument('response_type', None) redirect_uris = self.get_argument('redirect_uris', None) app_name = self.get_argument('app_name', None) description = self.get_argument('description', None) website = self.get_argument('website', None) try: user = kwargs['user'] client_id = create_id() client_secret = create_secret() grant_type = grant_type or 'authorization_code' response_type = response_type or 'code' # todo scopes default_scopes = ['tasks', 'projects', 'repos', 'users', 'teams'] scopes = default_scopes redirect_uris = parse_listed_strs(redirect_uris) # todo default default_redirect_uri = redirect_uris[0] if redirect_uris else '' client = Client( client_id=client_id, client_secret=client_secret, user=user, grant_type=grant_type, response_type=response_type, scopes=scopes, default_scopes=default_scopes, redirect_uris=redirect_uris, default_redirect_uri=default_redirect_uri, website=website, app_name=app_name, description=description) client.save() client_data = document_to_json(client, filter_set=_FILTER) self.set_status(201) self.write(client_data) except Exception as e: reason = e.message self.raise400(reason=reason)