Skip to content

Add Datastore API use event(s) #4600

@swirtSJW

Description

@swirtSJW

User Story

In order to make it possible for external modules to subscribe to events for notifications or tracking use, it would be nice to have Events emitted for API calls.

Detailed Feature Description

Must do:

This one is critical because it would reflect interacting with the dataset page or the querying it.

  • Dispatch DkanDatastoreEvents::API_QUERY_RESOURCE at the conclusion of Drupal\datastore\Controller\QueryController::queryResource (/api/1/datastore/query/{identifier})

High value:

  • Dispatch DkanDatastoreEvents::API_QUERY at the conclusion of Drupal\datastore\Controller\QueryController::query (/api/1/datastore/query)
  • Dispatch DkanDatastoreEvents::API_QUERY_DOWNLOAD at the conclusion of Drupal\datastore\Controller\QueryDownloadController::query (/api/1/datastore/query/download)
  • Dispatch DkanDatastoreEvents::API_QUERY_RESOURCE_DOWNLOAD at the conclusion of Drupal\datastore\Controller\QueryDownloadController::queryResource (/api/1/datastore/query/{identifier}/download)
  • Dispatch DkanDatastoreEvents::API_QUERY_RESOURCE_??? at the conclusion of Drupal\datastore\Controller\QueryController::queryDatasetResource (/api/1/datastore/query/{dataset}/{index}). I am not sure what to call this one because I do not know how it differs from (/api/1/datastore/query/{identifier})
  • Dispatch DkanDatastoreEvents::API_QUERY_RESOURCE_???_DOWNLOAD at the conclusion of Drupal\datastore\Controller\QueryDownloadController::queryDatasetResource (/api/1/datastore/query/{dataset}/{index}/download)
  • Dispatch DkanDatastoreEvents::API_QUERY_SQL_QUERY at the conclusion of Drupal\datastore\SqlEndpoint\WebServiceApi::runQueryGet' (/api/1/datastore/sql)
  • Dispatch DkanDatastoreEvents::API_QUERY_SQL_QUERY at the conclusion of Drupal\datastore\SqlEndpoint\WebServiceApi::runQueryPost (/api/1/datastore/sql). I think we can capture both get and post with the same event.

Possible other helpful events

I am not sure if any of these are needed at this time. Maybe they go in a follow-up ticket??

  • Drupal\datastore\Controller\ImportController::delete (/api/1/datastore/imports/{identifier})
  • Drupal\datastore\Controller\ImportController::deleteMultiple (/api/1/datastore/imports)
  • Drupal\datastore\Controller\ImportController::summary (/api/1/datastore/imports/{identifier})
  • Drupal\datastore\Controller\ImportController::list (/api/1/datastore/imports)
  • Drupal\datastore\Controller\ImportController::import (/api/1/datastore/imports post)
  • Drupal\common\Controller\OpenApiController::getVersions
  • Drupal\common\Controller\OpenApiController::getComplete (/api/1/datastore)
  • Drupal\datastore\Controller\QueryController::querySchema (api/1/datastore/query/schema)

Problem and Motivation

See user story

Target Audience

  • End Users
  • Developers
  • Administrators
  • Other

Possible Implementation

No response

Acceptance Criteria

No response

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions