BaseApp Chats
Project description
BaseApp Chats
This package provides a simple chat system for your project, where multiple profiles can chat with each other.
Requirements:
- **baseapp-core** >= 0.3.7
- **baseapp-profile** >= 0.2.4
Run pip install baseapp-chats
And make sure to add the frozen version to your requirements/base.txt
file
If you want to develop, install using this other guide.
How to use
Add baseapp_chats
to your project's INSTALLED_APPS
Make sure your Profile's GraphQL Object Types extends ChatRoomsInterface
interface:
from baseapp_chats.graphql.interfaces import ChatRoomsInterface
class ProfileObjectType(DjangoObjectType):
class Meta:
interfaces = (relay.Node, ChatRoomsInterface)
This is not necessary if you are using the baseapp-profile
as it is without a custom ProfileObjectType implementation.
Expose ChatsMutations
, ChatsQueries
and ChatsSubscriptions
in your GraphQL/graphene endpoint, like:
from baseapp_chats.graphql.mutations import ChatsMutations
from baseapp_chats.graphql.queries import ChatsQueries
from baseapp_chats.graphql.subscriptions import ChatsSubscriptions
class Query(graphene.ObjectType, ChatsQueries):
pass
class Mutation(graphene.ObjectType, ChatsMutations):
pass
class Subscription(graphene.ObjectType, ChatsSubscriptions):
pass
schema = graphene.Schema(query=Query, mutation=Mutation, subscription=Subscription)
Those will expose the following queries, mutations and subscriptions:
Queries
chatRoom(id: ID!)
: Return a specific chatRoom
Mutations
chatRoomCreate(profileId: ID!, participants: [ID!]!)
: Create a chatRoom with your profile and multiple participantschatRoomSendMessage(roomId: ID!, profileId: ID!, content: String!, inReplyToId: ID)
: Send a message in a room, using a specific profile. Optionally, you can reply to a message by passing theinReplyToId
argument.chatRoomReadMessages(roomId: ID!, profileId: ID!, messageIds: [ID])
: Mark messages in a room as read by a specific profile, ifmessageIds
is not passed, all messages will be marked as read.
Subscriptions
chatRoomOnRoomUpdate(profileId: ID!)
: Subscribe to chat rooms updates under your current profilechatRoomOnMessagesCountUpdate(profileId: ID!)
: Subscribe to unread/read messages count updates under your current profilechatRoomOnNewMessage(roomId: ID!)
: Subscribe to new messages in a specific room
How to develop
Clone the project inside your project's backend dir:
git clone git@github.com:silverlogic/baseapp-backend.git
And manually install the package:
pip install -e baseapp-backend/baseapp-chats
The -e
flag will make it like any change you make in the cloned repo files will effect into the project.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file baseapp-chats-0.0.2.tar.gz
.
File metadata
- Download URL: baseapp-chats-0.0.2.tar.gz
- Upload date:
- Size: 19.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e3639d84724645c1f236eb45657dd9be61b32085736c6e036c0c778fbb229ca1 |
|
MD5 | 2bcebb697a72583c1e640867ab33705b |
|
BLAKE2b-256 | de7e51130146a6753f1e60462e23417b7f32803598a0f4951039cd56280a9ef5 |