def create_gist(self, apiuser, files, owner=Optional(OAttr('apiuser')), gist_type=Optional(Gist.GIST_PUBLIC), lifetime=Optional(-1), description=Optional('')): try: if isinstance(owner, Optional): owner = apiuser.user_id owner = get_user_or_error(owner) description = Optional.extract(description) gist_type = Optional.extract(gist_type) lifetime = Optional.extract(lifetime) # files: { # 'filename': {'content':'...', 'lexer': null}, # 'filename2': {'content':'...', 'lexer': null} #} gist = GistModel().create(description=description, owner=owner, gist_mapping=files, gist_type=gist_type, lifetime=lifetime) Session().commit() return dict(msg='created new gist', gist=gist.get_api_data()) except Exception: log.error(traceback.format_exc()) raise JSONRPCError('failed to create gist')
def create_gist(self, apiuser, files, owner=Optional(OAttr('apiuser')), gist_type=Optional(Gist.GIST_PUBLIC), lifetime=Optional(-1), description=Optional('')): try: if isinstance(owner, Optional): owner = apiuser.user_id owner = get_user_or_error(owner) description = Optional.extract(description) gist_type = Optional.extract(gist_type) lifetime = Optional.extract(lifetime) # files: { # 'filename': {'content':'...', 'lexer': null}, # 'filename2': {'content':'...', 'lexer': null} #} gist = GistModel().create(description=description, owner=owner, gist_mapping=files, gist_type=gist_type, lifetime=lifetime) Session().commit() return dict( msg='created new gist', gist=gist.get_api_data() ) except Exception: log.error(traceback.format_exc()) raise JSONRPCError('failed to create gist')
def create_gist( request, apiuser, files, owner=Optional(OAttr('apiuser')), gist_type=Optional(Gist.GIST_PUBLIC), lifetime=Optional(-1), acl_level=Optional(Gist.ACL_LEVEL_PUBLIC), description=Optional('')): """ Creates a new Gist. :param apiuser: This is filled automatically from the |authtoken|. :type apiuser: AuthUser :param files: files to be added to the gist. The data structure has to match the following example:: {'filename': {'content':'...', 'lexer': null}, 'filename2': {'content':'...', 'lexer': null}} :type files: dict :param owner: Set the gist owner, defaults to api method caller :type owner: Optional(str or int) :param gist_type: type of gist ``public`` or ``private`` :type gist_type: Optional(str) :param lifetime: time in minutes of gist lifetime :type lifetime: Optional(int) :param acl_level: acl level for this gist, can be ``acl_public`` or ``acl_private`` If the value is set to ``acl_private`` only logged in users are able to access this gist. If not set it defaults to ``acl_public``. :type acl_level: Optional(str) :param description: gist description :type description: Optional(str) Example output: .. code-block:: bash id : <id_given_in_input> result : { "msg": "created new gist", "gist": {} } error : null Example error output: .. code-block:: bash id : <id_given_in_input> result : null error : { "failed to create gist" } """ try: if isinstance(owner, Optional): owner = apiuser.user_id owner = get_user_or_error(owner) description = Optional.extract(description) gist_type = Optional.extract(gist_type) lifetime = Optional.extract(lifetime) acl_level = Optional.extract(acl_level) gist = GistModel().create(description=description, owner=owner, gist_mapping=files, gist_type=gist_type, lifetime=lifetime, gist_acl_level=acl_level) Session().commit() return { 'msg': 'created new gist', 'gist': gist.get_api_data() } except Exception: log.exception('Error occurred during creation of gist') raise JSONRPCError('failed to create gist')