sevenspan/laravel-chat

The Laravel Chat package simplifies one-to-one and group chat integration, facilitates document sharing within chats, manages read and unread message counts, and supports document uploads to both local and AWS S3 storage

1.5.1 2024-05-22 05:57 UTC

This package is not auto-updated.

Last update: 2024-05-22 06:03:06 UTC


README

The Laravel Chat package simplifies one-to-one and group chat integration facilitates document sharing within chats, manages read and unread message counts, and supports document uploads to both local and AWS S3 storage

Index

Prerequisites

Before you get started, make sure you have the following prerequisites installed:

  • PHP >= 8.1
  • Composer >= 2.0
  • Laravel >= 8.1
  • AWS API credentials (Optional)
  • Pusher

Features

  • One-to-One Chat Integration
  • Group Chat Integration
  • Document Sharing within Chats
  • Read and Unread Message Count Management
  • Document Upload Support for Local Storage
  • Document Upload Support for AWS S3 Storage

Installation

To install this package, use Composer:

composer require sevenspan/laravel-chat

Configurations

To configure the package, publish the migration file with the following command:

php artisan vendor:publish --provider="SevenSpan\Chat\Providers\ChatServiceProvider"

This command will publish the configuration file chat.php to your project's config directories, respectively.

If you have cached configurations locally, clear the config cache using one of these commands:

php artisan optimize:clear

After publishing the migration and configuring, create the required tables for this package by running:

php artisan migrate

To configure message body encryption add these key on .env file.

CHAT_ENCRYPT_MESSAGE=true #boolean

Usage

Once you have installed the package, you can start using its features in your Laravel application. Here's a brief overview of how to use some of the main features:

1. List Channels

Use the list method to get all channels.

use SevenSpan\Chat\Facades\Channel;

// $userId = 12; (Required)
// $perPage = 10; (Optional)

Channel::list($userId, $perPage);

2. Detail of Channel

Use the detail method to get the detail of channel.

use SevenSpan\Chat\Facades\Channel;

// $userId = 12; (Required)
// $channelId = 10; (Required)

Channel::detail($userId, $channelId);

3. Create Channel

Use the create method to create the new channel.

use SevenSpan\Chat\Facades\Channel;

// $userId = 12; (Required)
// $receiverId = 10; (Required)
// $channelName = "Goverment project" (Required)

Channel::create($userId, $receiverId, $channelName);

4. Update Channel

Use the update method to update the channel details.

use SevenSpan\Chat\Facades\Channel;

// $userId = 12; (Required)
// $receiverId = 10; (Required)
// $channelName = "Goverment project" (Required)

Channel::update($userId, $receiverId, $channelName);

5. Delete Channel

Use the delete method to delete the channel.

use SevenSpan\Chat\Facades\Channel;

// $userId = 12; (Required)
// $channelId = 10; (Required)

Channel::delete($userId, $channelId);

6. Clear Channel History

Use the clearMessage method to clear the chat history.

use SevenSpan\Chat\Facades\Channel;

// $userId = 1; (Required)
// $channelId = 1 (Required)

Channel::clearMessage($userId, $channelId);

7. List Message

Use the list method to get all messages of the channel.

use SevenSpan\Chat\Facades\Message;

// $userId = 1; (Required)
// $channelId = 1 (Required)
// $perPage = 10; (Optional)

Message::list($userId, $channelId, $perPage);

8. Send Message

Use the send method to send a message.

use SevenSpan\Chat\Facades\Message;

// $userId = 1; (Required)
// $channelId = 1 (Required)
// $data = [
//    'body' => 'TEXT_MESSAGE',
//    'file' => Image Or Document
// ]; (Required)

Message::send($userId, $channelId, $data);

Note

In the $data param either body or file is required.

9. Get Files Message

Use the getFiles method to document of the channel.

use SevenSpan\Chat\Facades\Message;

// $userId = 1; (Required)
// $channelId = 1 (Required)
// $type = 'image' (Default: image)
// $perPage = 10; (Optional)

Message::getFiles($userId, $channelId, $type, $perPage);

Note

$type param supported value is image or zip.

10. Delete Message

Use the delete method to delete the message.

use SevenSpan\Chat\Facades\Message;

// $userId = 1; (Required)
// $channelId = 1 (Required)
// $messageId = 10; (Required)

Message::delete($userId, $channelId, $messageId);

11. Read Message

Use the read method to read the message of a channel.

use SevenSpan\Chat\Facades\Message;

// $userId = 1; (Required)
// $channelId = 1 (Required)
// $messageId = 10; (Required)

Message::read($userId, $channelId, $messageId);

Note

The messages that have a lesser value than $messageId will be read automatically.

12. User List

Use the list method to get a list of users and also search for the name of the user.

use SevenSpan\Chat\Facades\User;

// $userId = 1; (Required)
// $name = "John Doe" (Optional)
// $perPage = 10; (Optional)

User::list($userId, $name, $perPage);

Credits

Contributing

If you encounter any issues or would like to contribute to this package, we welcome contributions from the community to improve and enhance this package. If you'd like to contribute, please follow our contribution guidelines:

  • Fork this repository.
  • Clone the forked repository to your local machine.
  • Create a new branch for your feature or bug fix: git checkout -b feature/your-feature-name
  • Make your changes and commit them: git commit -m 'Add new feature'
  • Push your changes to your fork: git push origin feature/your-feature-name
  • Create a pull request to the original repository.

License

This package is open-source software licensed under the MIT License. Feel free to use, modify, and distribute it according to the terms of the license.