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 /python | |
| parent | 9f40f6131cb08f14a8a5b4211af9c71ee474f3e6 (diff) | |
| download | fatcat-eb9c5b9a8d0b55e0ddaec864a1810f5f5d963a3e.tar.gz fatcat-eb9c5b9a8d0b55e0ddaec864a1810f5f5d963a3e.zip | |
more fatcat-web views (changelog, history, etc)
Diffstat (limited to 'python')
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 | 
