Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add endpoint to create slack channel for a given proposal #76

Merged
merged 30 commits into from
May 18, 2024
Merged
Show file tree
Hide file tree
Changes from 23 commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
c2ce4cb
Add new file slack_service.py
stuartcampbell Feb 7, 2024
ce40684
Merge branch 'NSLS2:main' into slack-integration
stuartcampbell Feb 12, 2024
5494449
Initial work on slack service
stuartcampbell Apr 25, 2024
2c44204
Merge branch 'main' into slack-integration
stuartcampbell May 4, 2024
8facbd8
Admin endpoint to create proposal slack channels
stuartcampbell May 4, 2024
fed534c
Add additional parameters required for slack
stuartcampbell May 4, 2024
7c7e3af
Method to return name of slack channel for a proposal
stuartcampbell May 4, 2024
c0bae1f
Initial work on slack_service
stuartcampbell May 4, 2024
71fe60d
General package upgrades
stuartcampbell May 4, 2024
611a526
Merge branch 'NSLS2:main' into slack-integration
stuartcampbell May 9, 2024
b92a6b1
Add slack_channel_id field to proposal document
stuartcampbell May 10, 2024
7028a6b
Add field to store slack admins
stuartcampbell May 10, 2024
c2e2c20
Make testing prefix allowable by slack
stuartcampbell May 10, 2024
5735262
Add model for SlackBot
stuartcampbell May 10, 2024
68f0a91
Initial version of slack_service
stuartcampbell May 10, 2024
6c7fcf3
Endpoint to create proposal slack channel
stuartcampbell May 10, 2024
3f4977d
feat: Add SlackChannelManagersView model
stuartcampbell May 10, 2024
a87ec15
feat: Add endpoint to retrieve Slack channel managers for a beamline
stuartcampbell May 10, 2024
7906241
Code formating and linting changes
stuartcampbell May 11, 2024
3aeaa86
feat: Add SlackUser model
stuartcampbell May 11, 2024
701568f
feat: Retrieve Slack user IDs of channel managers for a beamline
stuartcampbell May 11, 2024
9a9bf34
feat: Add functionality to add users to a channel.
stuartcampbell May 11, 2024
d2363c0
feat: Add functionality to create Slack channel for proposal
stuartcampbell May 11, 2024
98b8768
Upgrade project dependencies
stuartcampbell May 7, 2024
8129227
Merge branch 'main' into slack-integration
stuartcampbell May 16, 2024
2d6f3f0
Updated create_channel function to enforce privacy setting and remove…
stuartcampbell May 17, 2024
a65318f
Correct field name
stuartcampbell May 17, 2024
1827b70
Update src/nsls2api/api/v1/admin_api.py
stuartcampbell May 17, 2024
5304459
Change default for data_admins be []
stuartcampbell May 17, 2024
b6c931c
Made channel_id and name mandatory fields in response model.
stuartcampbell May 17, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
70 changes: 33 additions & 37 deletions requirements-dev.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# This file was autogenerated by uv via the following command:
# uv pip compile requirements-dev.in -o requirements-dev.txt
aiohttp==3.9.4
aiohttp==3.9.5
# via textual-dev
aiosignal==1.3.1
# via aiohttp
Expand All @@ -10,18 +10,15 @@ anyio==4.3.0
# via asyncer
asttokens==2.4.1
# via stack-data
asyncer==0.0.5
# via -r requirements-dev.in
asyncer==0.0.7
attrs==23.2.0
# via aiohttp
black==24.3.0
# via -r requirements-dev.in
blinker==1.7.0
black==24.4.2
blinker==1.8.1
# via flask
brotli==1.1.0
# via geventhttpclient
bunnet==1.3.0
# via -r requirements-dev.in
certifi==2024.2.2
# via
# geventhttpclient
Expand All @@ -42,9 +39,8 @@ dnspython==2.6.1
# via pymongo
executing==2.0.1
# via stack-data
faker==24.4.0
# via -r requirements-dev.in
flask==3.0.2
faker==25.0.1
flask==3.0.3
# via
# flask-cors
# flask-login
Expand All @@ -61,7 +57,7 @@ gevent==24.2.1
# via
# geventhttpclient
# locust
geventhttpclient==2.0.12
geventhttpclient==2.2.1
# via locust
greenlet==3.0.3
# via gevent
Expand All @@ -72,9 +68,8 @@ idna==3.7
# yarl
iniconfig==2.0.0
# via pytest
ipython==8.23.0
# via -r requirements-dev.in
itsdangerous==2.1.2
ipython==8.24.0
itsdangerous==2.2.0
# via flask
jedi==0.19.1
# via ipython
Expand All @@ -84,9 +79,8 @@ lazy-model==0.2.0
# via bunnet
linkify-it-py==2.0.3
# via markdown-it-py
locust==2.24.1
# via -r requirements-dev.in
markdown-it-py[linkify,plugins]==3.0.0
locust==2.26.0
markdown-it-py==3.0.0
# via
# mdit-py-plugins
# rich
Expand All @@ -95,7 +89,7 @@ markupsafe==2.1.5
# via
# jinja2
# werkzeug
matplotlib-inline==0.1.6
matplotlib-inline==0.1.7
# via ipython
mdit-py-plugins==0.4.0
# via markdown-it-py
Expand All @@ -115,15 +109,15 @@ packaging==24.0
# via
# black
# pytest
parso==0.8.3
parso==0.8.4
# via jedi
pathspec==0.12.1
# via black
pexpect==4.9.0
# via ipython
platformdirs==4.2.0
platformdirs==4.2.1
# via black
pluggy==1.4.0
pluggy==1.5.0
# via pytest
prompt-toolkit==3.0.43
# via ipython
Expand All @@ -133,52 +127,52 @@ ptyprocess==0.7.0
# via pexpect
pure-eval==0.2.2
# via stack-data
pydantic==2.6.4
pydantic==2.7.1
# via
# bunnet
# lazy-model
pydantic-core==2.16.3
pydantic-core==2.18.2
# via pydantic
pygments==2.17.2
pygments==2.18.0
# via
# ipython
# rich
pymongo==4.6.3
pymongo==4.7.1
# via bunnet
pytest==8.1.1
# via -r requirements-dev.in
pytest==8.2.0
python-dateutil==2.9.0.post0
# via faker
pyzmq==25.1.2
pyzmq==26.0.3
# via locust
requests==2.31.0
# via locust
rich==13.7.1
# via textual
roundrobin==0.0.4
# via locust
ruff==0.3.5
# via -r requirements-dev.in
ruff==0.4.3
setuptools==69.5.1
# via
# zope-event
# zope-interface
six==1.16.0
# via
# asttokens
# geventhttpclient
# python-dateutil
sniffio==1.3.1
# via anyio
stack-data==0.6.3
# via ipython
textual==0.55.1
textual==0.58.1
# via textual-dev
textual-dev==1.5.1
# via -r requirements-dev.in
toml==0.10.2
# via bunnet
traitlets==5.14.2
traitlets==5.14.3
# via
# ipython
# matplotlib-inline
typing-extensions==4.10.0
typing-extensions==4.11.0
# via
# pydantic
# pydantic-core
Expand All @@ -187,7 +181,9 @@ typing-extensions==4.10.0
uc-micro-py==1.0.3
# via linkify-it-py
urllib3==2.2.1
# via requests
# via
# geventhttpclient
# requests
wcwidth==0.2.13
# via prompt-toolkit
werkzeug==3.0.2
Expand All @@ -199,5 +195,5 @@ yarl==1.9.4
# via aiohttp
zope-event==5.0
# via gevent
zope-interface==6.2
zope-interface==6.3
# via gevent
1 change: 1 addition & 0 deletions requirements.in
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ pydantic
pydantic-settings
python-multipart
rich
slack_bolt
textual
typer
uuid
Expand Down
84 changes: 57 additions & 27 deletions requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,18 @@
aiofiles==23.2.1
annotated-types==0.6.0
# via pydantic
anyio==3.7.1
anyio==4.3.0
# via
# httpx
# starlette
# watchfiles
argon2-cffi==23.1.0
argon2-cffi-bindings==21.2.0
# via argon2-cffi
asgi-correlation-id==4.3.1
async-timeout==4.0.3
# via httpx-socks
beanie==1.25.0
beanie==1.26.0
certifi==2024.2.2
# via
# httpcore
Expand All @@ -23,17 +24,23 @@ cffi==1.16.0
click==8.1.7
# via
# beanie
# typer-slim
# typer
# uvicorn
decorator==5.1.1
# via gssapi
dnspython==2.6.1
# via pymongo
fastapi==0.110.1
# via
# email-validator
# pymongo
email-validator==2.1.1
# via fastapi
fastapi==0.111.0
# via fastapi-cli
fastapi-cli==0.0.2
# via fastapi
gssapi==1.8.3
# via n2snusertools
gunicorn==22.0.0
# via -r requirements.in
h11==0.14.0
# via
# httpcore
Expand All @@ -42,16 +49,23 @@ httpcore==1.0.5
# via
# httpx
# httpx-socks
httptools==0.6.1
# via uvicorn
httpx==0.27.0
# via httpx-socks
# via
# fastapi
# httpx-socks
httpx-socks==0.9.1
idna==3.7
# via
# anyio
# email-validator
# httpx
jinja-partials==0.2.0
jinja-partials==0.2.1
jinja2==3.1.3
# via jinja-partials
# via
# fastapi
# jinja-partials
lazy-model==0.2.0
# via beanie
ldap3==2.9.1
Expand All @@ -74,6 +88,8 @@ mdurl==0.1.2
motor==3.4.0
# via beanie
n2snusertools==0.3.7
orjson==3.10.3
# via fastapi
packaging==24.0
# via gunicorn
passlib==1.7.4
Expand All @@ -83,32 +99,40 @@ pyasn1==0.6.0
# via ldap3
pycparser==2.22
# via cffi
pydantic==2.6.4
pydantic==2.7.1
# via
# beanie
# fastapi
# lazy-model
# pydantic-settings
pydantic-core==2.16.3
pydantic-core==2.18.2
# via pydantic
pydantic-settings==2.2.1
pygments==2.17.2
pygments==2.18.0
# via rich
pymongo==4.6.3
pymongo==4.7.1
# via motor
python-dotenv==1.0.1
# via pydantic-settings
# via
# pydantic-settings
# uvicorn
python-multipart==0.0.9
# via fastapi
python-socks==2.4.4
# via httpx-socks
pyyaml==6.0.1
# via n2snusertools
# via
# n2snusertools
# uvicorn
rich==13.7.1
# via
# textual
# typer-slim
# typer
shellingham==1.5.4
# via typer-slim
# via typer
slack-bolt==1.18.1
slack-sdk==3.27.1
# via slack-bolt
sniffio==1.3.1
# via
# anyio
Expand All @@ -117,27 +141,33 @@ starlette==0.37.2
# via
# asgi-correlation-id
# fastapi
textual==0.55.1
textual==0.58.1
toml==0.10.2
# via beanie
typer==0.12.0
typer-cli==0.12.0
# via typer
typer-slim==0.12.0
# via
# typer
# typer-cli
typing-extensions==4.10.0
typer==0.12.3
# via fastapi-cli
typing-extensions==4.11.0
# via
# fastapi
# pydantic
# pydantic-core
# textual
# typer-slim
# typer
uc-micro-py==1.0.3
# via linkify-it-py
ujson==5.9.0
# via fastapi
uuid==1.30
uvicorn==0.29.0
# via
# fastapi
# fastapi-cli
uvloop==0.19.0
# via uvicorn
watchfiles==0.21.0
# via uvicorn
wcwidth==0.2.13
# via prettytable
websockets==12.0
# via uvicorn
werkzeug==3.0.2
Loading
Loading