Metadata-Version: 2.1
Name: taskanalytics-data-wrapper
Version: 0.1.6
Summary: a wrapper for using Task Analytics APIs and downloading survey responses
Home-page: https://github.com/navikt/taskanalytics-data-wrapper
Author: Tobias McVey
Author-email: tobias.mcvey@nav.no
License: MIT
Classifier: License :: OSI Approved :: MIT License
Description-Content-Type: text/markdown
License-File: LICENSE

# Task Analytics Data Wrapper

[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)

This is a wrapper for Task Analytics APIs. You can use it to download survey responses and metadata for each survey.

## Supported APIs

- [Task Analytics Data Wrapper](#task-analytics-data-wrapper)
  - [Supported APIs](#supported-apis)
    - [Log in to Task Analytics](#log-in-to-task-analytics)
    - [Download Survey responses](#download-survey-responses)
    - [Download Survey metadata](#download-survey-metadata)
    - [Download Discovery survey responses](#download-discovery-survey-responses)

### Log in to Task Analytics

You can log in with email and password

```python
status = log_in_taskanalytics(username=email, password=password)  
status.status_code
```

### Download Survey responses

You can download survey responses for a Top Task survey using the survey ID, email, password and setting a path for where to store the file.

```python
import taskanalytics_data_wrapper.taskanalytics_api as task

get_survey = task.download_survey(
    username=email, password=password, survey_id="03324", filename="data/survey.csv"
)
get_survey.status_code
```

### Download Survey metadata

You can download the survey metadata which includes the questions and response options for each survey using the survey ID, email and password.

```python
survey_metadata = task.get_survey_metadata(
    username=email, password=password, survey_id="03324"
)
survey_metadata.status_code
```

The object can be easily inspected transformed into a dictionary for analysis

```python
survey_metadata.text # survey metadata
our_dict = survey_metadata.json() # convert string to dict and store as a variable
```

### Download Discovery survey responses

You can download responses from open ended task discovery surveys as well

```python
get_openended_survey = task.download_discovery_survey(
    username=email, password=password, organization_id=organization, survey_id="03230"
)
```
See how to turn this into csv in the code example below by expanding

<details>
<summary>Expandable example</summary>

```python
data = get_openended_survey.json()

#create a new dict from our subset of data
def flatten_openended_dict(data):
    """ """
    respondent = []
    completion = []
    category = []
    discovery = []
    comment = []
    for i in data:
        respondent.append(i["id"])
        completion.append(i["completion"])
        category.append(i["category"])
        discovery.append(i["answers"]["discovery"])
        try:
            comment.append(i["answers"]["comment"])
        except:
            comment.append("")
    newlist = [
        {
            "id": respondent,
            "completion": completion,
            "category": category,
            "discovery": discovery,
            "comment": comment,
        }
        for respondent, completion, category, discovery, comment in zip(
            respondent, completion, category, discovery, comment
        )
    ]
    return newlist


newlist = flatten_openended_dict(data["responses"])

# write open ended survey to csv with your preferred encoding and delimiter
keys = newlist[0].keys()

with open("data/open_survey.csv", "w", encoding="utf-8-sig", newline="") as output_file:
    writer = csv.DictWriter(output_file, fieldnames=keys, delimiter=";")
    writer.writeheader()
    writer.writerows(newlist)
```
</details>
