Conversation
| # Presence service | ||
|
|
||
| * Creator: Eldad Fux | ||
| * Relevant Issues: |
|
|
||
| Create a presence. Set the user presence status, expiry (minutes/date - TBD), and permissions for who has access to see the current presence. This will imitate the equivalent action in the GraphQL and Realtime APIs. | ||
|
|
||
| ```GET /v1/presences``` |
There was a problem hiding this comment.
Lets please add response model. Im curious if there will be connection between presence ID and user ID, and if its public.
There was a problem hiding this comment.
I am also curious what data can I set on presence.. message, icon, color? picture, age, status?
021-presence-service.md
Outdated
|
|
||
| ```GET /v1/presences``` | ||
|
|
||
| List all presences, on client side this will show only presneces I have permission to view. On server it will show all presences on the server. This endpoint will support queries and pagination like any other list endpoint on Appwrite. |
There was a problem hiding this comment.
Hmm, I think we should have a shortcut for getting "my presences". I don't know how - I cant see good way. But I would still like it.
There was a problem hiding this comment.
We could use a query filter with user id, but this is not as quick.
Co-authored-by: Matej Bačo <matejbaco2000@gmail.com>
| ### Console updates | ||
|
|
||
| - We should implement presence in the console itself and make current org members online or not or last online | ||
| - We will add a new section under auth called `Presences`, this section will show a dashboard with usage showing how many people were online in a specific time range. Below that, we will show avatars of all currently online users or users who just recently went offline. |
There was a problem hiding this comment.
Hmm I imagined this as tab under user detail page. Can 1 user have multiple presences?
| - userInternalId | ||
| - userId | ||
| - expiry (DateTime) | ||
| - status (string) |
There was a problem hiding this comment.
I think this should be JSON, since often apps need more than just a message. GitHub lets you set emoji. Discord lets you also set game you currently play. Instagram lets you ass music to your note.
There was a problem hiding this comment.
separate metadata and not storing inside the status itself as User can query by status as well
And having json on status can be performance bottleneck(mysql)
Having metadata allows user to have fancy status like we have in github, discord ,etc
| - _updatedAt | ||
| - userInternalId | ||
| - userId | ||
| - expiry (DateTime) |
There was a problem hiding this comment.
Will exipry be nullable - never delete?
There was a problem hiding this comment.
I think we can't allow a big expiry. There should be max value otherwise the stale presence count will be high. Max 15mins/1hour?
Parsed version: https://github.com/appwrite/rfc/blob/a60c657ce2b8580c6c51013be509ccda690b693d/021-presence-service.md