diff options
author | Bryan Newbold <bnewbold@robocracy.org> | 2018-06-30 20:30:51 -0700 |
---|---|---|
committer | Bryan Newbold <bnewbold@robocracy.org> | 2018-06-30 20:31:00 -0700 |
commit | eb9c5b9a8d0b55e0ddaec864a1810f5f5d963a3e (patch) | |
tree | 6154a519565d2b94fae54f32d9ea20088be4785c | |
parent | 9f40f6131cb08f14a8a5b4211af9c71ee474f3e6 (diff) | |
download | fatcat-eb9c5b9a8d0b55e0ddaec864a1810f5f5d963a3e.tar.gz fatcat-eb9c5b9a8d0b55e0ddaec864a1810f5f5d963a3e.zip |
more fatcat-web views (changelog, history, etc)
21 files changed, 1488 insertions, 58 deletions
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/<uuid:ident>/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/<uuid:ident>/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/<uuid:ident>/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/<uuid:ident>/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/<uuid:ident>/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/<uuid:ident>/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/<uuid:ident>/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/<uuid:ident>/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/<uuid:ident>/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/<uuid:ident>/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/<uuid:ident>', 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/<uuid:ident>/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/<uuid:ident>/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/<int:ident>', 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/<int:index>', 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 %} + +<h1 class="ui header">Recent Changes +<div class="sub header"><code>changelog</code></div></h1> + +<table class="ui table"> + <thead><tr><th>Changelog<br>Index + <th>Timestamp (UTC) + <th>Editgroup + <th>Editor + <th>Description + <tbody> + {% for entry in entries %} + <tr><td><a href="/changelog/{{ entry.index }}">{{ entry.index }}</a> + <td>{{ entry.timestamp }} + <td><a href="/editgroup/{{ entry.editgroup_id }}">{{ entry.editgroup_id }}</a> + <td><a href="/editor/{{ entry.editgroup.editor_id }}">{{ entry.editgroup.editor_id }}</a> + <td>{% if entry.editgroup.description != None %}{{ entry.editgroup.description }}{% endif %} + {% endfor %} +</table> + +{% 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 %} + +<h1 class="ui header">Changelog Entry +<div class="sub header"> + <code>changelog {{ entry.index }}</code> +</div> +</h1> + +<br><b>Timestamp:</b> {{ entry.timestamp }} +<br><b>Editgroup:</b> <a href="/editgroup/{{editgroup.id}}">{{ editgroup.id }}</a> + +{% endblock %} diff --git a/python/fatcat/templates/container_add.html b/python/fatcat/templates/container_create.html index 15288142..15288142 100644 --- a/python/fatcat/templates/container_add.html +++ b/python/fatcat/templates/container_create.html 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 %} -<h1>Edit Group: #{{ editgroup.id}}</h1> +{# extended by changelog_entry #} +{% block editgroupheader %} +<h1 class="ui header">Edit Group +<div class="sub header"><code>editgroup {{ editgroup.id }}</code></div></h1> +{% endblock %} {# TODO: <p>Editor: <a href="/editor/{{ editgroup.editor.username }}">{{ editgroup.editor.username }}</a> #} -<p>Editor: {{ editgroup.editor_id }} -<p>Description: {{ editgroup.description }} +<br><b>Editor:</b> <a href="/editor/{{editgroup.editor_id}}">{{ editgroup.editor_id }}</a> +<br><b>Description:</b> {{ editgroup.description }} -<h3>Work Edits ({{ editgroup.work_edits|count }})</h3> +<h3>Work Edits ({{ editgroup.edits.works|count }})</h3> <ul> -{% for edit in editgroup.work_edits %} - <li><a href="/work/edit/{{ edit.id }}">Edit #{{ edit.id }}</a>: - <a href="/work/{{ edit.ident }}">{{ edit.ident }}</a> to rev {{ edit.rev }} +{% for edit in editgroup.edits.works %} + <li>Work edit #<a href="/work/edit/{{ edit.edit_id }}">{{ edit.edit_id }}</a>: + <a href="/work/{{ edit.ident }}">{{ edit.ident }}</a> to rev {{ edit.revision }} {% endfor %} </ul> -<h3>Release Edits ({{ editgroup.release_edits|count }})</h3> +<h3>Release Edits ({{ editgroup.edits.releases|count }})</h3> <ul> -{% for edit in editgroup.release_edits %} - <li><a href="/release/edit/{{ edit.id }}">Edit #{{ edit.id }}</a> - <a href="/release/{{ edit.ident }}">{{ edit.ident }}</a> to rev {{ edit.rev }} +{% for edit in editgroup.edits.releases %} + <li>Release edit #<a href="/release/edit/{{ edit.edit_id }}">{{ edit.edit_id }}</a>: + <a href="/release/{{ edit.ident }}">{{ edit.ident }}</a> to rev {{ edit.revision }} {% endfor %} </ul> -<h3>Container Edits ({{ editgroup.container_edits|count }})</h3> +<h3>Container Edits ({{ editgroup.edits.containers|count }})</h3> <ul> -{% for edit in editgroup.container_edits %} - <li><a href="/container/edit/{{ edit.id }}">Edit #{{ edit.id }}</a> - <a href="/container/{{ edit.ident }}">{{ edit.ident }}</a> to rev {{ edit.rev }} +{% for edit in editgroup.edits.containers %} + <li>Container edit #<a href="/container/edit/{{ edit.edit_id }}">{{ edit.edit_id }}</a>: + <a href="/container/{{ edit.ident }}">{{ edit.ident }}</a> to rev {{ edit.revision }} {% endfor %} </ul> -<h3>Creator Edits ({{ editgroup.creator_edits|count }})</h3> +<h3>Creator Edits ({{ editgroup.edits.creators|count }})</h3> <ul> -{% for edit in editgroup.creator_edits %} - <li><a href="/creator/edit/{{ edit.id }}">Edit #{{ edit.id }}</a> - <a href="/creator/{{ edit.ident }}">{{ edit.ident }}</a> to rev {{ edit.rev }} +{% for edit in editgroup.edits.creators %} + <li>Creator edit #<a href="/creator/edit/{{ edit.edit_id }}">{{ edit.edit_id }}</a>: + <a href="/creator/{{ edit.ident }}">{{ edit.ident }}</a> to rev {{ edit.revision }} {% endfor %} </ul> -<h3>File Edits ({{ editgroup.file_edits|count }})</h3> +<h3>File Edits ({{ editgroup.edits.files|count }})</h3> <ul> -{% for edit in editgroup.file_edits %} - <li><a href="/file/edit/{{ edit.id }}">Edit #{{ edit.id }}</a> - <a href="/file/{{ edit.ident }}">{{ edit.ident }}</a> to rev {{ edit.rev }} +{% for edit in editgroup.edits.files %} + <li>File edit #<a href="/file/edit/{{ edit.edit_id }}">{{ edit.edit_id }}</a>: + <a href="/file/{{ edit.ident }}">{{ edit.ident }}</a> to rev {{ edit.revision }} {% endfor %} </ul> 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 %} -<h1>Editor Changelog: {{ editor.username }}</h1> - -<p>Editor: <a href="/editor/{{ editor.username }}">{{ editor.username }}</a> +<h1 class="ui header">Editor Changelog: {{ editor.username }} +<div class="sub header"> + <a href="/editor/{{editor.id}}"> + <code>editor {{ editor.id }}</code> + </a> +</div> +</h1> <p>Changes accepted (aka, merged editgroups): <ul> 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 %} -<h1>Editor: {{ editor.username }}</h1> +<h1 class="ui header">{{ editor.username }} +<div class="sub header"> + <code>editor {{ editor.id }}</code> +</div> +</h1> <p>Is Admin? {{ editor.is_admin }} <p><a href="/editor/{{ editor.username }}/changelog">Changelog</a> 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 %} + +<h1>Not Implemented</h1> + +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 %} + +<h1 class="ui header">{% if page_title != None %}{{ page_title }}{% endif %} +<div class="sub header"> + <a href="/{{entity_type}}/{{entity.ident}}"> + <code>{{ entity_type }} {{ entity.ident }}</code> + </a> +</div> +</h1> + +<h3 class="ui header">Fatcat Metadata Edit History</h3> + +<table class="ui table"> + <thead><tr><th>Changelog<br>Index + <th>Timestamp (UTC) + <th>Editgroup + <th>Editor + <th>Description + <tbody> + {% for entry in history %} + <tr><td><a href="/changelog/{{ entry.changelog_entry.index }}">{{ entry.changelog_entry.index }}</a> + <td>{{ entry.changelog_entry.timestamp }} + <td><a href="/editgroup/{{ entry.editgroup.id }}">{{ entry.editgroup.id }}</a> + <td><a href="/editor/{{ entry.editgroup.editor_id }}">{{ entry.editgroup.editor_id }}</a> + <td>{% if entry.editgroup.description != None %}{{ entry.editgroup.description }}{% endif %} + {% endfor %} +</table> + +{% 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). <td><a href="/container/00000000-0000-0000-1111-000000000002">Fake</a> <br><a href="/container/00000000-0000-0000-1111-000000000003">Real</a> <tr><td><b>Creator</b> - <td><a href="/creator/create">Create</a> + <td><!-- <a href="/creator/create">Create</a> --> <td><a href="/creator/00000000-0000-0000-2222-000000000002">Fake</a> <br><a href="/creator/00000000-0000-0000-2222-000000000003">Real</a> <tr><td><b>File</b> - <td><a href="/file/create">Create</a> + <td> <td><a href="/file/00000000-0000-0000-3333-000000000002">Fake</a> <br><a href="/file/00000000-0000-0000-3333-000000000003">Real</a> <tr><td><b>Release</b> @@ -39,7 +39,7 @@ indexing (aka, linking together of pre-prints and final copies). <td><a href="/release/00000000-0000-0000-4444-000000000002">Fake</a> <br><a href="/release/00000000-0000-0000-4444-000000000003">Real</a> <tr><td><b>Work</b> - <td><a href="/work/create">Create</a> + <td> <td><a href="/work/00000000-0000-0000-5555-000000000002">Fake</a> <br><a href="/work/00000000-0000-0000-5555-000000000003">Real</a> </table> diff --git a/python/fatcat/templates/work_add.html b/python/fatcat/templates/release_create.html index ac8a8169..ac8a8169 100644 --- a/python/fatcat/templates/work_add.html +++ b/python/fatcat/templates/release_create.html 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 @@ -1391,6 +1682,107 @@ class DefaultApi(object): _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_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_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_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_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( + '/creator/{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_releases(self, id, **kwargs): # noqa: E501 """get_creator_releases # noqa: E501 @@ -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 |