From eb9c5b9a8d0b55e0ddaec864a1810f5f5d963a3e Mon Sep 17 00:00:00 2001 From: Bryan Newbold Date: Sat, 30 Jun 2018 20:30:51 -0700 Subject: more fatcat-web views (changelog, history, etc) --- python/README_codegen.md | 11 +- python/fatcat/routes.py | 162 ++++- python/fatcat/templates/changelog.html | 23 + python/fatcat/templates/changelog_view.html | 13 + python/fatcat/templates/container_add.html | 168 ----- python/fatcat/templates/container_create.html | 168 +++++ python/fatcat/templates/editgroup_view.html | 50 +- python/fatcat/templates/editor_changelog.html | 10 +- python/fatcat/templates/editor_view.html | 6 +- python/fatcat/templates/entity_edit.html | 8 + python/fatcat/templates/entity_history.html | 30 + python/fatcat/templates/home.html | 6 +- python/fatcat/templates/release_create.html | 215 ++++++ python/fatcat/templates/work_add.html | 215 ------ python/fatcat_client/__init__.py | 4 +- python/fatcat_client/api/default_api.py | 721 ++++++++++++++++++++- python/fatcat_client/models/__init__.py | 4 +- python/fatcat_client/models/changelog_entry.py | 195 ++++++ .../fatcat_client/models/entity_history_entry.py | 171 +++++ python/tests/codegen_tests/test_changelog_entry.py | 40 ++ python/tests/codegen_tests/test_default_api.py | 42 ++ .../codegen_tests/test_entity_history_entry.py | 40 ++ python/tests/routes.py | 30 +- 23 files changed, 1881 insertions(+), 451 deletions(-) create mode 100644 python/fatcat/templates/changelog.html create mode 100644 python/fatcat/templates/changelog_view.html delete mode 100644 python/fatcat/templates/container_add.html create mode 100644 python/fatcat/templates/container_create.html create mode 100644 python/fatcat/templates/entity_edit.html create mode 100644 python/fatcat/templates/entity_history.html create mode 100644 python/fatcat/templates/release_create.html delete mode 100644 python/fatcat/templates/work_add.html create mode 100644 python/fatcat_client/models/changelog_entry.py create mode 100644 python/fatcat_client/models/entity_history_entry.py create mode 100644 python/tests/codegen_tests/test_changelog_entry.py create mode 100644 python/tests/codegen_tests/test_entity_history_entry.py (limited to 'python') diff --git a/python/README_codegen.md b/python/README_codegen.md index 6d436160..71e56fa0 100644 --- a/python/README_codegen.md +++ b/python/README_codegen.md @@ -80,17 +80,24 @@ Class | Method | HTTP request | Description *DefaultApi* | [**create_release_batch**](docs/DefaultApi.md#create_release_batch) | **POST** /release/batch | *DefaultApi* | [**create_work**](docs/DefaultApi.md#create_work) | **POST** /work | *DefaultApi* | [**create_work_batch**](docs/DefaultApi.md#create_work_batch) | **POST** /work/batch | +*DefaultApi* | [**get_changelog**](docs/DefaultApi.md#get_changelog) | **GET** /changelog | +*DefaultApi* | [**get_changelog_entry**](docs/DefaultApi.md#get_changelog_entry) | **GET** /changelog/{id} | *DefaultApi* | [**get_container**](docs/DefaultApi.md#get_container) | **GET** /container/{id} | +*DefaultApi* | [**get_container_history**](docs/DefaultApi.md#get_container_history) | **GET** /container/{id}/history | *DefaultApi* | [**get_creator**](docs/DefaultApi.md#get_creator) | **GET** /creator/{id} | +*DefaultApi* | [**get_creator_history**](docs/DefaultApi.md#get_creator_history) | **GET** /creator/{id}/history | *DefaultApi* | [**get_creator_releases**](docs/DefaultApi.md#get_creator_releases) | **GET** /creator/{id}/releases | *DefaultApi* | [**get_editgroup**](docs/DefaultApi.md#get_editgroup) | **GET** /editgroup/{id} | *DefaultApi* | [**get_editor**](docs/DefaultApi.md#get_editor) | **GET** /editor/{username} | *DefaultApi* | [**get_editor_changelog**](docs/DefaultApi.md#get_editor_changelog) | **GET** /editor/{username}/changelog | *DefaultApi* | [**get_file**](docs/DefaultApi.md#get_file) | **GET** /file/{id} | +*DefaultApi* | [**get_file_history**](docs/DefaultApi.md#get_file_history) | **GET** /file/{id}/history | *DefaultApi* | [**get_release**](docs/DefaultApi.md#get_release) | **GET** /release/{id} | *DefaultApi* | [**get_release_files**](docs/DefaultApi.md#get_release_files) | **GET** /release/{id}/files | +*DefaultApi* | [**get_release_history**](docs/DefaultApi.md#get_release_history) | **GET** /release/{id}/history | *DefaultApi* | [**get_stats**](docs/DefaultApi.md#get_stats) | **GET** /stats | *DefaultApi* | [**get_work**](docs/DefaultApi.md#get_work) | **GET** /work/{id} | +*DefaultApi* | [**get_work_history**](docs/DefaultApi.md#get_work_history) | **GET** /work/{id}/history | *DefaultApi* | [**get_work_releases**](docs/DefaultApi.md#get_work_releases) | **GET** /work/{id}/releases | *DefaultApi* | [**lookup_container**](docs/DefaultApi.md#lookup_container) | **GET** /container/lookup | *DefaultApi* | [**lookup_creator**](docs/DefaultApi.md#lookup_creator) | **GET** /creator/lookup | @@ -100,14 +107,14 @@ Class | Method | HTTP request | Description ## Documentation For Models - - [Changelogentries](docs/Changelogentries.md) - - [ChangelogentriesInner](docs/ChangelogentriesInner.md) + - [ChangelogEntry](docs/ChangelogEntry.md) - [ContainerEntity](docs/ContainerEntity.md) - [CreatorEntity](docs/CreatorEntity.md) - [Editgroup](docs/Editgroup.md) - [EditgroupEdits](docs/EditgroupEdits.md) - [Editor](docs/Editor.md) - [EntityEdit](docs/EntityEdit.md) + - [EntityHistoryEntry](docs/EntityHistoryEntry.md) - [ErrorResponse](docs/ErrorResponse.md) - [FileEntity](docs/FileEntity.md) - [ReleaseContrib](docs/ReleaseContrib.md) diff --git a/python/fatcat/routes.py b/python/fatcat/routes.py index 5bd68ba1..ec6b849e 100644 --- a/python/fatcat/routes.py +++ b/python/fatcat/routes.py @@ -18,9 +18,43 @@ def container_view(ident): abort(ae.status) return render_template('container_view.html', container=entity) +@app.route('/container//history', methods=['GET']) +def container_history(ident): + try: + entity = api.get_container(str(ident)) + history = api.get_container_history(str(ident)) + except ApiException as ae: + abort(ae.status) + print(history) + return render_template('entity_history.html', + page_title=entity.name, + entity_type="container", + entity=entity, + history=history) + +@app.route('/container//edit', methods=['GET']) +def container_edit_view(ident): + try: + entity = api.get_container(str(ident)) + except ApiException as ae: + abort(ae.status) + return render_template('entity_edit.html') + +#@app.route('/container//edit', methods=['POST']) +#def container_edit(ident): +# raise NotImplemented() +# params = dict() +# for k in request.form: +# if k.startswith('container_'): +# params[k[10:]] = request.form[k] +# edit = api.update_container(params=params) +# return redirect("/container/{}".format(edit.ident)) +# # else: +# #return render_template('container_edit.html') + @app.route('/container/create', methods=['GET']) def container_create_view(): - return render_template('container_add.html') + return render_template('container_create.html') @app.route('/container/create', methods=['POST']) def container_create(): @@ -51,6 +85,27 @@ def creator_view(ident): abort(ae.status) return render_template('creator_view.html', creator=entity, releases=releases) +@app.route('/creator//history', methods=['GET']) +def creator_history(ident): + try: + entity = api.get_creator(str(ident)) + history = api.get_creator_history(str(ident)) + except ApiException as ae: + abort(ae.status) + return render_template('entity_history.html', + page_title=entity.display_name, + entity_type="creator", + entity=entity, + history=history) + +@app.route('/creator//edit', methods=['GET']) +def creator_edit_view(ident): + try: + entity = api.get_creator(str(ident)) + except ApiException as ae: + abort(ae.status) + return render_template('entity_edit.html') + @app.route('/creator/lookup', methods=['GET']) def creator_lookup(): orcid = request.args.get('orcid') @@ -70,6 +125,27 @@ def file_view(ident): abort(ae.status) return render_template('file_view.html', file=entity) +@app.route('/file//history', methods=['GET']) +def file_history(ident): + try: + entity = api.get_file(str(ident)) + history = api.get_file_history(str(ident)) + except ApiException as ae: + abort(ae.status) + return render_template('entity_history.html', + page_title=None, + entity_type="file", + entity=entity, + history=history) + +@app.route('/file//edit', methods=['GET']) +def file_edit_view(ident): + try: + entity = api.get_file(str(ident)) + except ApiException as ae: + abort(ae.status) + return render_template('entity_edit.html') + @app.route('/file/lookup', methods=['GET']) def file_lookup(): sha1 = request.args.get('sha1') @@ -107,18 +183,39 @@ def release_lookup(): abort(ae.status) return redirect('/release/{}'.format(resp.ident)) -#@app.route('/release//changelog', methods=['GET']) -#def release_changelog(ident): -# try: -# entity = api.get_release(str(ident)) -# except ApiException as ae: -# abort(ae.status) -# try: -# entries = api.release_changelog(str(ident)) -# except ApiException as ae: -# abort(ae.status) -# return render_template('release_changelog.html', release=entity, -# changelog_entries=entries) +@app.route('/release/create', methods=['GET']) +def release_create_view(): + return render_template('release_create.html') + +@app.route('/release/create', methods=['POST']) +def release_create(): + params = dict() + for k in request.form: + if k.startswith('release_'): + params[k[10:]] = request.form[k] + edit = api.create_release(params=params) + return redirect("/release/{}".format(edit.ident)) + +@app.route('/release//history', methods=['GET']) +def release_history(ident): + try: + entity = api.get_release(str(ident)) + history = api.get_release_history(str(ident)) + except ApiException as ae: + abort(ae.status) + return render_template('entity_history.html', + page_title=entity.title, + entity_type="release", + entity=entity, + history=history) + +@app.route('/release//edit', methods=['GET']) +def release_edit_view(ident): + try: + entity = api.get_release(str(ident)) + except ApiException as ae: + abort(ae.status) + return render_template('entity_edit.html') @app.route('/work/', methods=['GET']) def work_view(ident): @@ -129,9 +226,26 @@ def work_view(ident): abort(ae.status) return render_template('work_view.html', work=entity, releases=releases) -@app.route('/work/create', methods=['GET']) -def work_create(): - return render_template('work_add.html') +@app.route('/work//history', methods=['GET']) +def work_history(ident): + try: + entity = api.get_work(str(ident)) + history = api.get_work_history(str(ident)) + except ApiException as ae: + abort(ae.status) + return render_template('entity_history.html', + page_title=None, + entity_type="work", + entity=entity, + history=history) + +@app.route('/work//edit', methods=['GET']) +def work_edit_view(ident): + try: + entity = api.get_work(str(ident)) + except ApiException as ae: + abort(ae.status) + return render_template('entity_edit.html') @app.route('/editgroup/', methods=['GET']) def editgroup_view(ident): @@ -160,6 +274,22 @@ def editor_changelog(username): return render_template('editor_changelog.html', editor=editor, changelog_entries=changelog_entries) +@app.route('/changelog', methods=['GET']) +def changelog_view(): + try: + entries = api.get_changelog(limit=request.args.get('limit')) + except ApiException as ae: + abort(ae.status) + return render_template('changelog.html', entries=entries) + +@app.route('/changelog/', methods=['GET']) +def changelog_entry_view(index): + try: + entry = api.get_changelog_entry(int(index)) + except ApiException as ae: + abort(ae.status) + return render_template('changelog_view.html', entry=entry, editgroup=entry.editgroup) + @app.route('/stats', methods=['GET']) def stats_view(): stats = api.get_stats() diff --git a/python/fatcat/templates/changelog.html b/python/fatcat/templates/changelog.html new file mode 100644 index 00000000..ee50a7d2 --- /dev/null +++ b/python/fatcat/templates/changelog.html @@ -0,0 +1,23 @@ +{% extends "base.html" %} +{% block body %} + +

Recent Changes +
changelog

+ + + + {% for entry in entries %} +
Changelog
Index +
Timestamp (UTC) + Editgroup + Editor + Description +
{{ entry.index }} + {{ entry.timestamp }} + {{ entry.editgroup_id }} + {{ entry.editgroup.editor_id }} + {% if entry.editgroup.description != None %}{{ entry.editgroup.description }}{% endif %} + {% endfor %} +
+ +{% endblock %} diff --git a/python/fatcat/templates/changelog_view.html b/python/fatcat/templates/changelog_view.html new file mode 100644 index 00000000..22aff9bc --- /dev/null +++ b/python/fatcat/templates/changelog_view.html @@ -0,0 +1,13 @@ +{% extends "editgroup_view.html" %} +{% block editgroupheader %} + +

Changelog Entry +
+ changelog {{ entry.index }} +
+

+ +
Timestamp: {{ entry.timestamp }} +
Editgroup: {{ editgroup.id }} + +{% endblock %} diff --git a/python/fatcat/templates/container_add.html b/python/fatcat/templates/container_add.html deleted file mode 100644 index 15288142..00000000 --- a/python/fatcat/templates/container_add.html +++ /dev/null @@ -1,168 +0,0 @@ -{% extends "base.html" %} -{% block body %} -
-

Adding a New Container

- -

A "container" is a anything that groups publications together. For example, -a journal (eg, "New England Journal of Medicine"), conference proceedings, a -book series, or a blog. - -

Not all publications are in a container. - -

- -

The Basics

- -
- - -
- -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - - - - - -

Anything Else?

- -
Create container
- -

Entity will be created as part of the current edit group, which needs to be -submited and approved before the entity will formally be included in the -catalog. - -

- -
-{% endblock %} - -{% block postscript %} - -{% endblock %} diff --git a/python/fatcat/templates/container_create.html b/python/fatcat/templates/container_create.html new file mode 100644 index 00000000..15288142 --- /dev/null +++ b/python/fatcat/templates/container_create.html @@ -0,0 +1,168 @@ +{% extends "base.html" %} +{% block body %} +
+

Adding a New Container

+ +

A "container" is a anything that groups publications together. For example, +a journal (eg, "New England Journal of Medicine"), conference proceedings, a +book series, or a blog. + +

Not all publications are in a container. + +

+ +

The Basics

+ +
+ + +
+ +
+ + +
+ + +
+ + +
+ + +
+ + +
+ + +
+ + +
+ + +
+ + +
+ + + + + + +

Anything Else?

+ +
Create container
+ +

Entity will be created as part of the current edit group, which needs to be +submited and approved before the entity will formally be included in the +catalog. + +

+ +
+{% endblock %} + +{% block postscript %} + +{% endblock %} diff --git a/python/fatcat/templates/editgroup_view.html b/python/fatcat/templates/editgroup_view.html index 06fef424..ac3228b0 100644 --- a/python/fatcat/templates/editgroup_view.html +++ b/python/fatcat/templates/editgroup_view.html @@ -1,49 +1,53 @@ {% extends "base.html" %} {% block body %} -

Edit Group: #{{ editgroup.id}}

+{# extended by changelog_entry #} +{% block editgroupheader %} +

Edit Group +
editgroup {{ editgroup.id }}

+{% endblock %} {# TODO:

Editor: {{ editgroup.editor.username }} #} -

Editor: {{ editgroup.editor_id }} -

Description: {{ editgroup.description }} +
Editor: {{ editgroup.editor_id }} +
Description: {{ editgroup.description }} -

Work Edits ({{ editgroup.work_edits|count }})

+

Work Edits ({{ editgroup.edits.works|count }})

-

Release Edits ({{ editgroup.release_edits|count }})

+

Release Edits ({{ editgroup.edits.releases|count }})

-

Container Edits ({{ editgroup.container_edits|count }})

+

Container Edits ({{ editgroup.edits.containers|count }})

-

Creator Edits ({{ editgroup.creator_edits|count }})

+

Creator Edits ({{ editgroup.edits.creators|count }})

-

File Edits ({{ editgroup.file_edits|count }})

+

File Edits ({{ editgroup.edits.files|count }})

diff --git a/python/fatcat/templates/editor_changelog.html b/python/fatcat/templates/editor_changelog.html index e1410874..543d6bac 100644 --- a/python/fatcat/templates/editor_changelog.html +++ b/python/fatcat/templates/editor_changelog.html @@ -1,9 +1,13 @@ {% extends "base.html" %} {% block body %} -

Editor Changelog: {{ editor.username }}

- -

Editor: {{ editor.username }} +

Editor Changelog: {{ editor.username }} + +

Changes accepted (aka, merged editgroups):

    diff --git a/python/fatcat/templates/editor_view.html b/python/fatcat/templates/editor_view.html index e0625c42..f58b85b5 100644 --- a/python/fatcat/templates/editor_view.html +++ b/python/fatcat/templates/editor_view.html @@ -1,7 +1,11 @@ {% extends "base.html" %} {% block body %} -

    Editor: {{ editor.username }}

    +

    {{ editor.username }} +
    + editor {{ editor.id }} +
    +

    Is Admin? {{ editor.is_admin }}

    Changelog diff --git a/python/fatcat/templates/entity_edit.html b/python/fatcat/templates/entity_edit.html new file mode 100644 index 00000000..5da98d89 --- /dev/null +++ b/python/fatcat/templates/entity_edit.html @@ -0,0 +1,8 @@ +{% extends "base.html" %} +{% block body %} + +

    Not Implemented

    + +Entity editing isn't implemented yet, only creation. Sorry! + +{% endblock %} diff --git a/python/fatcat/templates/entity_history.html b/python/fatcat/templates/entity_history.html new file mode 100644 index 00000000..54577b2f --- /dev/null +++ b/python/fatcat/templates/entity_history.html @@ -0,0 +1,30 @@ +{% extends "base.html" %} +{% block body %} + +

    {% if page_title != None %}{{ page_title }}{% endif %} + +

    + +

    Fatcat Metadata Edit History

    + + + + {% for entry in history %} +
    Changelog
    Index +
    Timestamp (UTC) + Editgroup + Editor + Description +
    {{ entry.changelog_entry.index }} + {{ entry.changelog_entry.timestamp }} + {{ entry.editgroup.id }} + {{ entry.editgroup.editor_id }} + {% if entry.editgroup.description != None %}{{ entry.editgroup.description }}{% endif %} + {% endfor %} +
    + +{% endblock %} diff --git a/python/fatcat/templates/home.html b/python/fatcat/templates/home.html index 0ec0bd18..9a8a55c8 100644 --- a/python/fatcat/templates/home.html +++ b/python/fatcat/templates/home.html @@ -27,11 +27,11 @@ indexing (aka, linking together of pre-prints and final copies). Fake
    Real Creator - Create + Fake
    Real File - Create + Fake
    Real Release @@ -39,7 +39,7 @@ indexing (aka, linking together of pre-prints and final copies). Fake
    Real Work - Create + Fake
    Real diff --git a/python/fatcat/templates/release_create.html b/python/fatcat/templates/release_create.html new file mode 100644 index 00000000..ac8a8169 --- /dev/null +++ b/python/fatcat/templates/release_create.html @@ -0,0 +1,215 @@ +{% extends "base.html" %} +{% block body %} +
    +

    Adding a New Thing

    + +
    + +

    The Basics

    + +
    + + +
    + +
    + + +
    + + + + + +
    + +
    + + +
    +
    + + +
    + + +
    + + +
    + + +
    + + +

    Primary Release / Edition

    + + + + + + + + + + + + + +

    Anything Else?

    + + + + +
    Create Work
    +
    + +
    +{% endblock %} + +{% block postscript %} + +{% endblock %} diff --git a/python/fatcat/templates/work_add.html b/python/fatcat/templates/work_add.html deleted file mode 100644 index ac8a8169..00000000 --- a/python/fatcat/templates/work_add.html +++ /dev/null @@ -1,215 +0,0 @@ -{% extends "base.html" %} -{% block body %} -
    -

    Adding a New Thing

    - -
    - -

    The Basics

    - -
    - - -
    - -
    - - -
    - - - - - -
    - -
    - - -
    -
    - - -
    - - -
    - - -
    - - -
    - - -

    Primary Release / Edition

    - - - - - - - - - - - - - -

    Anything Else?

    - - - - -
    Create Work
    -
    - -
    -{% endblock %} - -{% block postscript %} - -{% endblock %} diff --git a/python/fatcat_client/__init__.py b/python/fatcat_client/__init__.py index 8aa96f04..fca893a7 100644 --- a/python/fatcat_client/__init__.py +++ b/python/fatcat_client/__init__.py @@ -22,14 +22,14 @@ from fatcat_client.api.default_api import DefaultApi from fatcat_client.api_client import ApiClient from fatcat_client.configuration import Configuration # import models into sdk package -from fatcat_client.models.changelogentries import Changelogentries -from fatcat_client.models.changelogentries_inner import ChangelogentriesInner +from fatcat_client.models.changelog_entry import ChangelogEntry from fatcat_client.models.container_entity import ContainerEntity from fatcat_client.models.creator_entity import CreatorEntity from fatcat_client.models.editgroup import Editgroup from fatcat_client.models.editgroup_edits import EditgroupEdits from fatcat_client.models.editor import Editor from fatcat_client.models.entity_edit import EntityEdit +from fatcat_client.models.entity_history_entry import EntityHistoryEntry from fatcat_client.models.error_response import ErrorResponse from fatcat_client.models.file_entity import FileEntity from fatcat_client.models.release_contrib import ReleaseContrib diff --git a/python/fatcat_client/api/default_api.py b/python/fatcat_client/api/default_api.py index 09e8d505..f63a1daf 100644 --- a/python/fatcat_client/api/default_api.py +++ b/python/fatcat_client/api/default_api.py @@ -1197,6 +1197,196 @@ class DefaultApi(object): _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) + def get_changelog(self, **kwargs): # noqa: E501 + """get_changelog # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async=True + >>> thread = api.get_changelog(async=True) + >>> result = thread.get() + + :param async bool + :param int limit: + :return: list[ChangelogEntry] + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + if kwargs.get('async'): + return self.get_changelog_with_http_info(**kwargs) # noqa: E501 + else: + (data) = self.get_changelog_with_http_info(**kwargs) # noqa: E501 + return data + + def get_changelog_with_http_info(self, **kwargs): # noqa: E501 + """get_changelog # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async=True + >>> thread = api.get_changelog_with_http_info(async=True) + >>> result = thread.get() + + :param async bool + :param int limit: + :return: list[ChangelogEntry] + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['limit'] # noqa: E501 + all_params.append('async') + all_params.append('_return_http_data_only') + all_params.append('_preload_content') + all_params.append('_request_timeout') + + params = locals() + for key, val in six.iteritems(params['kwargs']): + if key not in all_params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_changelog" % key + ) + params[key] = val + del params['kwargs'] + + collection_formats = {} + + path_params = {} + + query_params = [] + if 'limit' in params: + query_params.append(('limit', params['limit'])) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/json']) # noqa: E501 + + # Authentication setting + auth_settings = [] # noqa: E501 + + return self.api_client.call_api( + '/changelog', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='list[ChangelogEntry]', # noqa: E501 + auth_settings=auth_settings, + async=params.get('async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def get_changelog_entry(self, id, **kwargs): # noqa: E501 + """get_changelog_entry # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async=True + >>> thread = api.get_changelog_entry(id, async=True) + >>> result = thread.get() + + :param async bool + :param int id: (required) + :return: ChangelogEntry + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + if kwargs.get('async'): + return self.get_changelog_entry_with_http_info(id, **kwargs) # noqa: E501 + else: + (data) = self.get_changelog_entry_with_http_info(id, **kwargs) # noqa: E501 + return data + + def get_changelog_entry_with_http_info(self, id, **kwargs): # noqa: E501 + """get_changelog_entry # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async=True + >>> thread = api.get_changelog_entry_with_http_info(id, async=True) + >>> result = thread.get() + + :param async bool + :param int id: (required) + :return: ChangelogEntry + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['id'] # noqa: E501 + all_params.append('async') + all_params.append('_return_http_data_only') + all_params.append('_preload_content') + all_params.append('_request_timeout') + + params = locals() + for key, val in six.iteritems(params['kwargs']): + if key not in all_params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_changelog_entry" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'id' is set + if ('id' not in params or + params['id'] is None): + raise ValueError("Missing the required parameter `id` when calling `get_changelog_entry`") # noqa: E501 + + collection_formats = {} + + path_params = {} + if 'id' in params: + path_params['id'] = params['id'] # noqa: E501 + + query_params = [] + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/json']) # noqa: E501 + + # Authentication setting + auth_settings = [] # noqa: E501 + + return self.api_client.call_api( + '/changelog/{id}', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='ChangelogEntry', # noqa: E501 + auth_settings=auth_settings, + async=params.get('async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + def get_container(self, id, **kwargs): # noqa: E501 """get_container # noqa: E501 @@ -1294,6 +1484,107 @@ class DefaultApi(object): _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) + def get_container_history(self, id, **kwargs): # noqa: E501 + """get_container_history # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async=True + >>> thread = api.get_container_history(id, async=True) + >>> result = thread.get() + + :param async bool + :param str id: (required) + :param int limit: + :return: list[EntityHistoryEntry] + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + if kwargs.get('async'): + return self.get_container_history_with_http_info(id, **kwargs) # noqa: E501 + else: + (data) = self.get_container_history_with_http_info(id, **kwargs) # noqa: E501 + return data + + def get_container_history_with_http_info(self, id, **kwargs): # noqa: E501 + """get_container_history # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async=True + >>> thread = api.get_container_history_with_http_info(id, async=True) + >>> result = thread.get() + + :param async bool + :param str id: (required) + :param int limit: + :return: list[EntityHistoryEntry] + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['id', 'limit'] # noqa: E501 + all_params.append('async') + all_params.append('_return_http_data_only') + all_params.append('_preload_content') + all_params.append('_request_timeout') + + params = locals() + for key, val in six.iteritems(params['kwargs']): + if key not in all_params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_container_history" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'id' is set + if ('id' not in params or + params['id'] is None): + raise ValueError("Missing the required parameter `id` when calling `get_container_history`") # noqa: E501 + + collection_formats = {} + + path_params = {} + if 'id' in params: + path_params['id'] = params['id'] # noqa: E501 + + query_params = [] + if 'limit' in params: + query_params.append(('limit', params['limit'])) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/json']) # noqa: E501 + + # Authentication setting + auth_settings = [] # noqa: E501 + + return self.api_client.call_api( + '/container/{id}/history', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='list[EntityHistoryEntry]', # noqa: E501 + auth_settings=auth_settings, + async=params.get('async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + def get_creator(self, id, **kwargs): # noqa: E501 """get_creator # noqa: E501 @@ -1312,25 +1603,124 @@ class DefaultApi(object): if kwargs.get('async'): return self.get_creator_with_http_info(id, **kwargs) # noqa: E501 else: - (data) = self.get_creator_with_http_info(id, **kwargs) # noqa: E501 + (data) = self.get_creator_with_http_info(id, **kwargs) # noqa: E501 + return data + + def get_creator_with_http_info(self, id, **kwargs): # noqa: E501 + """get_creator # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async=True + >>> thread = api.get_creator_with_http_info(id, async=True) + >>> result = thread.get() + + :param async bool + :param str id: (required) + :return: CreatorEntity + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['id'] # noqa: E501 + all_params.append('async') + all_params.append('_return_http_data_only') + all_params.append('_preload_content') + all_params.append('_request_timeout') + + params = locals() + for key, val in six.iteritems(params['kwargs']): + if key not in all_params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_creator" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'id' is set + if ('id' not in params or + params['id'] is None): + raise ValueError("Missing the required parameter `id` when calling `get_creator`") # noqa: E501 + + collection_formats = {} + + path_params = {} + if 'id' in params: + path_params['id'] = params['id'] # noqa: E501 + + query_params = [] + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/json']) # noqa: E501 + + # Authentication setting + auth_settings = [] # noqa: E501 + + return self.api_client.call_api( + '/creator/{id}', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='CreatorEntity', # noqa: E501 + auth_settings=auth_settings, + async=params.get('async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def get_creator_history(self, id, **kwargs): # noqa: E501 + """get_creator_history # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async=True + >>> thread = api.get_creator_history(id, async=True) + >>> result = thread.get() + + :param async bool + :param str id: (required) + :param int limit: + :return: list[EntityHistoryEntry] + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + if kwargs.get('async'): + return self.get_creator_history_with_http_info(id, **kwargs) # noqa: E501 + else: + (data) = self.get_creator_history_with_http_info(id, **kwargs) # noqa: E501 return data - def get_creator_with_http_info(self, id, **kwargs): # noqa: E501 - """get_creator # noqa: E501 + def get_creator_history_with_http_info(self, id, **kwargs): # noqa: E501 + """get_creator_history # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async=True - >>> thread = api.get_creator_with_http_info(id, async=True) + >>> thread = api.get_creator_history_with_http_info(id, async=True) >>> result = thread.get() :param async bool :param str id: (required) - :return: CreatorEntity + :param int limit: + :return: list[EntityHistoryEntry] If the method is called asynchronously, returns the request thread. """ - all_params = ['id'] # noqa: E501 + all_params = ['id', 'limit'] # noqa: E501 all_params.append('async') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -1341,14 +1731,14 @@ class DefaultApi(object): if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method get_creator" % key + " to method get_creator_history" % key ) params[key] = val del params['kwargs'] # verify the required parameter 'id' is set if ('id' not in params or params['id'] is None): - raise ValueError("Missing the required parameter `id` when calling `get_creator`") # noqa: E501 + raise ValueError("Missing the required parameter `id` when calling `get_creator_history`") # noqa: E501 collection_formats = {} @@ -1357,6 +1747,8 @@ class DefaultApi(object): path_params['id'] = params['id'] # noqa: E501 query_params = [] + if 'limit' in params: + query_params.append(('limit', params['limit'])) # noqa: E501 header_params = {} @@ -1376,14 +1768,14 @@ class DefaultApi(object): auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/creator/{id}', 'GET', + '/creator/{id}/history', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='CreatorEntity', # noqa: E501 + response_type='list[EntityHistoryEntry]', # noqa: E501 auth_settings=auth_settings, async=params.get('async'), _return_http_data_only=params.get('_return_http_data_only'), @@ -1692,7 +2084,7 @@ class DefaultApi(object): :param async bool :param str username: (required) - :return: Changelogentries + :return: list[ChangelogEntry] If the method is called asynchronously, returns the request thread. """ @@ -1713,7 +2105,7 @@ class DefaultApi(object): :param async bool :param str username: (required) - :return: Changelogentries + :return: list[ChangelogEntry] If the method is called asynchronously, returns the request thread. """ @@ -1771,7 +2163,7 @@ class DefaultApi(object): body=body_params, post_params=form_params, files=local_var_files, - response_type='Changelogentries', # noqa: E501 + response_type='list[ChangelogEntry]', # noqa: E501 auth_settings=auth_settings, async=params.get('async'), _return_http_data_only=params.get('_return_http_data_only'), @@ -1876,6 +2268,107 @@ class DefaultApi(object): _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) + def get_file_history(self, id, **kwargs): # noqa: E501 + """get_file_history # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async=True + >>> thread = api.get_file_history(id, async=True) + >>> result = thread.get() + + :param async bool + :param str id: (required) + :param int limit: + :return: list[EntityHistoryEntry] + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + if kwargs.get('async'): + return self.get_file_history_with_http_info(id, **kwargs) # noqa: E501 + else: + (data) = self.get_file_history_with_http_info(id, **kwargs) # noqa: E501 + return data + + def get_file_history_with_http_info(self, id, **kwargs): # noqa: E501 + """get_file_history # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async=True + >>> thread = api.get_file_history_with_http_info(id, async=True) + >>> result = thread.get() + + :param async bool + :param str id: (required) + :param int limit: + :return: list[EntityHistoryEntry] + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['id', 'limit'] # noqa: E501 + all_params.append('async') + all_params.append('_return_http_data_only') + all_params.append('_preload_content') + all_params.append('_request_timeout') + + params = locals() + for key, val in six.iteritems(params['kwargs']): + if key not in all_params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_file_history" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'id' is set + if ('id' not in params or + params['id'] is None): + raise ValueError("Missing the required parameter `id` when calling `get_file_history`") # noqa: E501 + + collection_formats = {} + + path_params = {} + if 'id' in params: + path_params['id'] = params['id'] # noqa: E501 + + query_params = [] + if 'limit' in params: + query_params.append(('limit', params['limit'])) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/json']) # noqa: E501 + + # Authentication setting + auth_settings = [] # noqa: E501 + + return self.api_client.call_api( + '/file/{id}/history', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='list[EntityHistoryEntry]', # noqa: E501 + auth_settings=auth_settings, + async=params.get('async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + def get_release(self, id, **kwargs): # noqa: E501 """get_release # noqa: E501 @@ -2070,6 +2563,107 @@ class DefaultApi(object): _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) + def get_release_history(self, id, **kwargs): # noqa: E501 + """get_release_history # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async=True + >>> thread = api.get_release_history(id, async=True) + >>> result = thread.get() + + :param async bool + :param str id: (required) + :param int limit: + :return: list[EntityHistoryEntry] + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + if kwargs.get('async'): + return self.get_release_history_with_http_info(id, **kwargs) # noqa: E501 + else: + (data) = self.get_release_history_with_http_info(id, **kwargs) # noqa: E501 + return data + + def get_release_history_with_http_info(self, id, **kwargs): # noqa: E501 + """get_release_history # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async=True + >>> thread = api.get_release_history_with_http_info(id, async=True) + >>> result = thread.get() + + :param async bool + :param str id: (required) + :param int limit: + :return: list[EntityHistoryEntry] + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['id', 'limit'] # noqa: E501 + all_params.append('async') + all_params.append('_return_http_data_only') + all_params.append('_preload_content') + all_params.append('_request_timeout') + + params = locals() + for key, val in six.iteritems(params['kwargs']): + if key not in all_params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_release_history" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'id' is set + if ('id' not in params or + params['id'] is None): + raise ValueError("Missing the required parameter `id` when calling `get_release_history`") # noqa: E501 + + collection_formats = {} + + path_params = {} + if 'id' in params: + path_params['id'] = params['id'] # noqa: E501 + + query_params = [] + if 'limit' in params: + query_params.append(('limit', params['limit'])) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/json']) # noqa: E501 + + # Authentication setting + auth_settings = [] # noqa: E501 + + return self.api_client.call_api( + '/release/{id}/history', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='list[EntityHistoryEntry]', # noqa: E501 + auth_settings=auth_settings, + async=params.get('async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + def get_stats(self, **kwargs): # noqa: E501 """get_stats # noqa: E501 @@ -2260,6 +2854,107 @@ class DefaultApi(object): _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) + def get_work_history(self, id, **kwargs): # noqa: E501 + """get_work_history # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async=True + >>> thread = api.get_work_history(id, async=True) + >>> result = thread.get() + + :param async bool + :param str id: (required) + :param int limit: + :return: list[EntityHistoryEntry] + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + if kwargs.get('async'): + return self.get_work_history_with_http_info(id, **kwargs) # noqa: E501 + else: + (data) = self.get_work_history_with_http_info(id, **kwargs) # noqa: E501 + return data + + def get_work_history_with_http_info(self, id, **kwargs): # noqa: E501 + """get_work_history # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async=True + >>> thread = api.get_work_history_with_http_info(id, async=True) + >>> result = thread.get() + + :param async bool + :param str id: (required) + :param int limit: + :return: list[EntityHistoryEntry] + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['id', 'limit'] # noqa: E501 + all_params.append('async') + all_params.append('_return_http_data_only') + all_params.append('_preload_content') + all_params.append('_request_timeout') + + params = locals() + for key, val in six.iteritems(params['kwargs']): + if key not in all_params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_work_history" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'id' is set + if ('id' not in params or + params['id'] is None): + raise ValueError("Missing the required parameter `id` when calling `get_work_history`") # noqa: E501 + + collection_formats = {} + + path_params = {} + if 'id' in params: + path_params['id'] = params['id'] # noqa: E501 + + query_params = [] + if 'limit' in params: + query_params.append(('limit', params['limit'])) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/json']) # noqa: E501 + + # Authentication setting + auth_settings = [] # noqa: E501 + + return self.api_client.call_api( + '/work/{id}/history', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='list[EntityHistoryEntry]', # noqa: E501 + auth_settings=auth_settings, + async=params.get('async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + def get_work_releases(self, id, **kwargs): # noqa: E501 """get_work_releases # noqa: E501 diff --git a/python/fatcat_client/models/__init__.py b/python/fatcat_client/models/__init__.py index f003f51c..e09fe3e4 100644 --- a/python/fatcat_client/models/__init__.py +++ b/python/fatcat_client/models/__init__.py @@ -15,14 +15,14 @@ from __future__ import absolute_import # import models into model package -from fatcat_client.models.changelogentries import Changelogentries -from fatcat_client.models.changelogentries_inner import ChangelogentriesInner +from fatcat_client.models.changelog_entry import ChangelogEntry from fatcat_client.models.container_entity import ContainerEntity from fatcat_client.models.creator_entity import CreatorEntity from fatcat_client.models.editgroup import Editgroup from fatcat_client.models.editgroup_edits import EditgroupEdits from fatcat_client.models.editor import Editor from fatcat_client.models.entity_edit import EntityEdit +from fatcat_client.models.entity_history_entry import EntityHistoryEntry from fatcat_client.models.error_response import ErrorResponse from fatcat_client.models.file_entity import FileEntity from fatcat_client.models.release_contrib import ReleaseContrib diff --git a/python/fatcat_client/models/changelog_entry.py b/python/fatcat_client/models/changelog_entry.py new file mode 100644 index 00000000..ae9925c5 --- /dev/null +++ b/python/fatcat_client/models/changelog_entry.py @@ -0,0 +1,195 @@ +# coding: utf-8 + +""" + fatcat + + A scalable, versioned, API-oriented catalog of bibliographic entities and file metadata # noqa: E501 + + OpenAPI spec version: 0.1.0 + + Generated by: https://github.com/swagger-api/swagger-codegen.git +""" + + +import pprint +import re # noqa: F401 + +import six + +from fatcat_client.models.editgroup import Editgroup # noqa: F401,E501 + + +class ChangelogEntry(object): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'index': 'int', + 'editgroup_id': 'int', + 'timestamp': 'datetime', + 'editgroup': 'Editgroup' + } + + attribute_map = { + 'index': 'index', + 'editgroup_id': 'editgroup_id', + 'timestamp': 'timestamp', + 'editgroup': 'editgroup' + } + + def __init__(self, index=None, editgroup_id=None, timestamp=None, editgroup=None): # noqa: E501 + """ChangelogEntry - a model defined in Swagger""" # noqa: E501 + + self._index = None + self._editgroup_id = None + self._timestamp = None + self._editgroup = None + self.discriminator = None + + self.index = index + self.editgroup_id = editgroup_id + self.timestamp = timestamp + if editgroup is not None: + self.editgroup = editgroup + + @property + def index(self): + """Gets the index of this ChangelogEntry. # noqa: E501 + + + :return: The index of this ChangelogEntry. # noqa: E501 + :rtype: int + """ + return self._index + + @index.setter + def index(self, index): + """Sets the index of this ChangelogEntry. + + + :param index: The index of this ChangelogEntry. # noqa: E501 + :type: int + """ + if index is None: + raise ValueError("Invalid value for `index`, must not be `None`") # noqa: E501 + + self._index = index + + @property + def editgroup_id(self): + """Gets the editgroup_id of this ChangelogEntry. # noqa: E501 + + + :return: The editgroup_id of this ChangelogEntry. # noqa: E501 + :rtype: int + """ + return self._editgroup_id + + @editgroup_id.setter + def editgroup_id(self, editgroup_id): + """Sets the editgroup_id of this ChangelogEntry. + + + :param editgroup_id: The editgroup_id of this ChangelogEntry. # noqa: E501 + :type: int + """ + if editgroup_id is None: + raise ValueError("Invalid value for `editgroup_id`, must not be `None`") # noqa: E501 + + self._editgroup_id = editgroup_id + + @property + def timestamp(self): + """Gets the timestamp of this ChangelogEntry. # noqa: E501 + + + :return: The timestamp of this ChangelogEntry. # noqa: E501 + :rtype: datetime + """ + return self._timestamp + + @timestamp.setter + def timestamp(self, timestamp): + """Sets the timestamp of this ChangelogEntry. + + + :param timestamp: The timestamp of this ChangelogEntry. # noqa: E501 + :type: datetime + """ + if timestamp is None: + raise ValueError("Invalid value for `timestamp`, must not be `None`") # noqa: E501 + + self._timestamp = timestamp + + @property + def editgroup(self): + """Gets the editgroup of this ChangelogEntry. # noqa: E501 + + + :return: The editgroup of this ChangelogEntry. # noqa: E501 + :rtype: Editgroup + """ + return self._editgroup + + @editgroup.setter + def editgroup(self, editgroup): + """Sets the editgroup of this ChangelogEntry. + + + :param editgroup: The editgroup of this ChangelogEntry. # noqa: E501 + :type: Editgroup + """ + + self._editgroup = editgroup + + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, ChangelogEntry): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/python/fatcat_client/models/entity_history_entry.py b/python/fatcat_client/models/entity_history_entry.py new file mode 100644 index 00000000..4df733d0 --- /dev/null +++ b/python/fatcat_client/models/entity_history_entry.py @@ -0,0 +1,171 @@ +# coding: utf-8 + +""" + fatcat + + A scalable, versioned, API-oriented catalog of bibliographic entities and file metadata # noqa: E501 + + OpenAPI spec version: 0.1.0 + + Generated by: https://github.com/swagger-api/swagger-codegen.git +""" + + +import pprint +import re # noqa: F401 + +import six + +from fatcat_client.models.changelog_entry import ChangelogEntry # noqa: F401,E501 +from fatcat_client.models.editgroup import Editgroup # noqa: F401,E501 +from fatcat_client.models.entity_edit import EntityEdit # noqa: F401,E501 + + +class EntityHistoryEntry(object): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'edit': 'EntityEdit', + 'editgroup': 'Editgroup', + 'changelog_entry': 'ChangelogEntry' + } + + attribute_map = { + 'edit': 'edit', + 'editgroup': 'editgroup', + 'changelog_entry': 'changelog_entry' + } + + def __init__(self, edit=None, editgroup=None, changelog_entry=None): # noqa: E501 + """EntityHistoryEntry - a model defined in Swagger""" # noqa: E501 + + self._edit = None + self._editgroup = None + self._changelog_entry = None + self.discriminator = None + + self.edit = edit + self.editgroup = editgroup + self.changelog_entry = changelog_entry + + @property + def edit(self): + """Gets the edit of this EntityHistoryEntry. # noqa: E501 + + + :return: The edit of this EntityHistoryEntry. # noqa: E501 + :rtype: EntityEdit + """ + return self._edit + + @edit.setter + def edit(self, edit): + """Sets the edit of this EntityHistoryEntry. + + + :param edit: The edit of this EntityHistoryEntry. # noqa: E501 + :type: EntityEdit + """ + if edit is None: + raise ValueError("Invalid value for `edit`, must not be `None`") # noqa: E501 + + self._edit = edit + + @property + def editgroup(self): + """Gets the editgroup of this EntityHistoryEntry. # noqa: E501 + + + :return: The editgroup of this EntityHistoryEntry. # noqa: E501 + :rtype: Editgroup + """ + return self._editgroup + + @editgroup.setter + def editgroup(self, editgroup): + """Sets the editgroup of this EntityHistoryEntry. + + + :param editgroup: The editgroup of this EntityHistoryEntry. # noqa: E501 + :type: Editgroup + """ + if editgroup is None: + raise ValueError("Invalid value for `editgroup`, must not be `None`") # noqa: E501 + + self._editgroup = editgroup + + @property + def changelog_entry(self): + """Gets the changelog_entry of this EntityHistoryEntry. # noqa: E501 + + + :return: The changelog_entry of this EntityHistoryEntry. # noqa: E501 + :rtype: ChangelogEntry + """ + return self._changelog_entry + + @changelog_entry.setter + def changelog_entry(self, changelog_entry): + """Sets the changelog_entry of this EntityHistoryEntry. + + + :param changelog_entry: The changelog_entry of this EntityHistoryEntry. # noqa: E501 + :type: ChangelogEntry + """ + if changelog_entry is None: + raise ValueError("Invalid value for `changelog_entry`, must not be `None`") # noqa: E501 + + self._changelog_entry = changelog_entry + + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, EntityHistoryEntry): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/python/tests/codegen_tests/test_changelog_entry.py b/python/tests/codegen_tests/test_changelog_entry.py new file mode 100644 index 00000000..a8401891 --- /dev/null +++ b/python/tests/codegen_tests/test_changelog_entry.py @@ -0,0 +1,40 @@ +# coding: utf-8 + +""" + fatcat + + A scalable, versioned, API-oriented catalog of bibliographic entities and file metadata # noqa: E501 + + OpenAPI spec version: 0.1.0 + + Generated by: https://github.com/swagger-api/swagger-codegen.git +""" + + +from __future__ import absolute_import + +import unittest + +import fatcat_client +from fatcat_client.models.changelog_entry import ChangelogEntry # noqa: E501 +from fatcat_client.rest import ApiException + + +class TestChangelogEntry(unittest.TestCase): + """ChangelogEntry unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def testChangelogEntry(self): + """Test ChangelogEntry""" + # FIXME: construct object with mandatory attributes with example values + # model = fatcat_client.models.changelog_entry.ChangelogEntry() # noqa: E501 + pass + + +if __name__ == '__main__': + unittest.main() diff --git a/python/tests/codegen_tests/test_default_api.py b/python/tests/codegen_tests/test_default_api.py index a1f22d8c..e3008898 100644 --- a/python/tests/codegen_tests/test_default_api.py +++ b/python/tests/codegen_tests/test_default_api.py @@ -101,18 +101,42 @@ class TestDefaultApi(unittest.TestCase): """ pass + def test_get_changelog(self): + """Test case for get_changelog + + """ + pass + + def test_get_changelog_entry(self): + """Test case for get_changelog_entry + + """ + pass + def test_get_container(self): """Test case for get_container """ pass + def test_get_container_history(self): + """Test case for get_container_history + + """ + pass + def test_get_creator(self): """Test case for get_creator """ pass + def test_get_creator_history(self): + """Test case for get_creator_history + + """ + pass + def test_get_creator_releases(self): """Test case for get_creator_releases @@ -143,6 +167,12 @@ class TestDefaultApi(unittest.TestCase): """ pass + def test_get_file_history(self): + """Test case for get_file_history + + """ + pass + def test_get_release(self): """Test case for get_release @@ -155,6 +185,12 @@ class TestDefaultApi(unittest.TestCase): """ pass + def test_get_release_history(self): + """Test case for get_release_history + + """ + pass + def test_get_stats(self): """Test case for get_stats @@ -167,6 +203,12 @@ class TestDefaultApi(unittest.TestCase): """ pass + def test_get_work_history(self): + """Test case for get_work_history + + """ + pass + def test_get_work_releases(self): """Test case for get_work_releases diff --git a/python/tests/codegen_tests/test_entity_history_entry.py b/python/tests/codegen_tests/test_entity_history_entry.py new file mode 100644 index 00000000..4c27c80f --- /dev/null +++ b/python/tests/codegen_tests/test_entity_history_entry.py @@ -0,0 +1,40 @@ +# coding: utf-8 + +""" + fatcat + + A scalable, versioned, API-oriented catalog of bibliographic entities and file metadata # noqa: E501 + + OpenAPI spec version: 0.1.0 + + Generated by: https://github.com/swagger-api/swagger-codegen.git +""" + + +from __future__ import absolute_import + +import unittest + +import fatcat_client +from fatcat_client.models.entity_history_entry import EntityHistoryEntry # noqa: E501 +from fatcat_client.rest import ApiException + + +class TestEntityHistoryEntry(unittest.TestCase): + """EntityHistoryEntry unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def testEntityHistoryEntry(self): + """Test EntityHistoryEntry""" + # FIXME: construct object with mandatory attributes with example values + # model = fatcat_client.models.entity_history_entry.EntityHistoryEntry() # noqa: E501 + pass + + +if __name__ == '__main__': + unittest.main() diff --git a/python/tests/routes.py b/python/tests/routes.py index ec4eaf12..5a523efa 100644 --- a/python/tests/routes.py +++ b/python/tests/routes.py @@ -27,6 +27,12 @@ def test_all_views(app): rv = app.get('/container/00000000-0000-0000-1111-000000000002') assert rv.status_code == 200 + rv = app.get('/container/00000000-0000-0000-1111-000000000002/history') + assert rv.status_code == 200 + + rv = app.get('/container/00000000-0000-0000-1111-000000000002/edit') + assert rv.status_code == 200 + rv = app.get('/container/create') assert rv.status_code == 200 @@ -42,6 +48,12 @@ def test_all_views(app): rv = app.get('/creator/00000000-0000-0000-2222-000000000002') assert rv.status_code == 200 + rv = app.get('/creator/00000000-0000-0000-2222-000000000002/history') + assert rv.status_code == 200 + + rv = app.get('/creator/00000000-0000-0000-2222-000000000002/edit') + assert rv.status_code == 200 + rv = app.get('/creator/lookup?orcid=0000-0003-2088-7465') assert rv.status_code == 302 @@ -54,6 +66,15 @@ def test_all_views(app): rv = app.get('/release/00000000-0000-0000-4444-000000000002') assert rv.status_code == 200 + rv = app.get('/release/00000000-0000-0000-4444-000000000002/history') + assert rv.status_code == 200 + + rv = app.get('/release/00000000-0000-0000-4444-000000000002/edit') + assert rv.status_code == 200 + + rv = app.get('/release/create') + assert rv.status_code == 200 + rv = app.get('/release/lookup?doi=10.123/abc') assert rv.status_code == 302 @@ -66,11 +87,14 @@ def test_all_views(app): rv = app.get('/work/00000000-0000-0000-5555-000000000002') assert rv.status_code == 200 - rv = app.get('/work/create') + rv = app.get('/work/00000000-0000-0000-5555-000000000002/history') assert rv.status_code == 200 - #rv = app.get('/release/00000000-0000-0000-4444-000000000002/changelog') - #assert rv.status_code == 200 + rv = app.get('/work/00000000-0000-0000-5555-000000000002/edit') + assert rv.status_code == 200 + + rv = app.get('/work/create') + assert rv.status_code == 404 rv = app.get('/editgroup/1') assert rv.status_code == 200 -- cgit v1.2.3