Metadata-Version: 2.1
Name: pyswit
Version: 0.0.7
Summary: Swit.io API client
Home-page: https://github.com/sanghunka/pyswit/
Author: Sanghun Kang
Author-email: sanghunka@gmail.com
License: Apache Software License
Keywords: swit swit.io api messenger
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Operating System :: OS Independent
Classifier: Topic :: Communications
Classifier: Topic :: Office/Business
Description-Content-Type: text/markdown
License-File: LICENSE.md
Requires-Dist: requests (>=2.28.1)

# Pyswit: Python + Swit.io

Python interface for [swit.io](https://swit.io/)

[![PyPI](https://img.shields.io/pypi/v/pyswit?color=green)](https://pypi.python.org/pypi/pyswit/)
[![PyPI download month](https://img.shields.io/pypi/dm/pyswit.svg)](https://pypi.python.org/pypi/pyswit/)
[![PyPI format](https://img.shields.io/pypi/format/pyswit.svg)](https://pypi.python.org/pypi/pyswit/)
[![PyPI pyversions](https://img.shields.io/pypi/pyversions/pyswit.svg)](https://pypi.python.org/pypi/pyswit/)
[![PyPI license](https://img.shields.io/pypi/l/pyswit?color=%23D22128)](https://pypi.python.org/pypi/pyswit/)

<br>

## Requirements

This library requires Python 3.6 or later.

## Installation

```sh
$ pip install pyswit
```

## Examples

```py
from pyswit import Pyswit

# How to get access token: https://developers.swit.io/documentation#authentication
access_token = "<your access token>"
swit = Pyswit(access_token)

# User
print(swit.user.info())

# Create a message
channel_id = "<your_channel_id>"  # not channel name
response = swit.message.create(channel_id=channel_id, content="Hello, World!")

# Get message_id
message_id = response["data"]["message"]["message_id"]

# React to a message
swit.message.reaction.create(message_id=message_id, reaction_name=":smile:")

# Comment on a message
swit.message.comment.create(message_id=message_id, content="Comment string here")
```

## Webhook

Pyswit supports webhook.

```sh
curl -X POST -H 'Content-type: application/json' --data '{"text":"Hello, World!"}' <your_webhook_url>
```

The above curl request can be implemented with pyswit as follows.

```py
from pyswit import webhook

webhook_url="<your_webhook_url>"
webhook(url=webhook_url, text="Hello, World!")
```

## Documentation

[Swit.io Developer documentation](https://developers.swit.io/documentation#introduction)

- Currently, Pyswit supports the following API.

|                 | HTTP | endpoint                | pyswit             |
| --------------- | ---- | ----------------------- | ------------------ |
| Users           | GET  | user.info               | :white_check_mark: |
| Workspaces      | GET  | workspace.info          | :white_check_mark: |
|                 | GET  | workspace.list          | :white_check_mark: |
|                 | POST | workspace.update        | :white_check_mark: |
|                 | GET  | workspace.user.info     | :white_check_mark: |
|                 | GET  | workspace.user.list     | :white_check_mark: |
|                 | POST | workspace.user.update   | :white_check_mark: |
| Channels        | POST | channel.archive         | :white_check_mark: |
|                 | POST | channel.create          | :white_check_mark: |
|                 | POST | channel.createDirect    | :white_check_mark: |
|                 | GET  | channel.info            | :white_check_mark: |
|                 | GET  | channel.list            | :white_check_mark: |
|                 | POST | channel.update          | :white_check_mark: |
| Messages        | POST | message.comment.create  | :white_check_mark: |
|                 | GET  | message.comment.list    | :white_check_mark: |
|                 | POST | message.comment.remove  | :white_check_mark: |
|                 | POST | message.create          | :white_check_mark: |
|                 | GET  | message.info            | :white_check_mark: |
|                 | GET  | message.list            | :white_check_mark: |
|                 | POST | message.reaction.create | :white_check_mark: |
|                 | POST | message.reaction.remove | :white_check_mark: |
|                 | POST | message.remove          | :white_check_mark: |
| Ideas           |      |                         |                    |
| Projects        | POST | project.archive         | :white_check_mark: |
|                 | POST | project.create          | :white_check_mark: |
|                 | GET  | project.info            | :white_check_mark: |
|                 | GET  | project.list            | :white_check_mark: |
|                 | GET  | project.tagList         | :white_check_mark: |
|                 | POST | project.update          | :white_check_mark: |
|                 | GET  | project.user.list       | :white_check_mark: |
| Project buckets |      |                         |                    |
| Tasks           | POST | task.assignee.add       |                    |
|                 | POST | task.asignee.remove     |                    |
|                 | POST | task.checklist.create   |                    |
|                 | GET  | task.checklist.info     |                    |
|                 | GET  | task.checklist.list     |                    |
|                 | POST | task.checklist.remove   |                    |
|                 | POST | task.checklist.update   |                    |
|                 | POST | task.comment.create     |                    |
|                 | GET  | task.comment.list       |                    |
|                 | POST | task.comment.remove     |                    |
|                 | POST | task.comment.update     |                    |
|                 | POST | task.create             | :white_check_mark: |
|                 | POST | task.follow.add         |                    |
|                 | POST | task.follow.remove      |                    |
|                 | GET  | task.info               | :white_check_mark: |
|                 | GET  | task.list               | :white_check_mark: |
|                 | GET  | task.listByColumn       | :white_check_mark: |
|                 | POST | task.move               | :white_check_mark: |
|                 | GET  | task.myTaskList         | :white_check_mark: |
|                 | POST | task.remove             | :white_check_mark: |
|                 | POST | task.update             | :white_check_mark: |
| Posts           |      |                         | :x:                |
| Boards          |      |                         | :x:                |
| Custom fileds   |      |                         |                    |
| Approvals       |      |                         |                    |

- Advanced Only API: `Posts`, `Boards`
- Pyswit has no plan to support Advanced Only API
