API Chat
This commit is contained in:
39
app/Events/ChatMessageSent.php
Normal file
39
app/Events/ChatMessageSent.php
Normal file
@@ -0,0 +1,39 @@
|
||||
<?php
|
||||
|
||||
namespace App\Events;
|
||||
|
||||
use Illuminate\Broadcasting\Channel;
|
||||
use Illuminate\Broadcasting\InteractsWithSockets;
|
||||
use Illuminate\Broadcasting\PresenceChannel;
|
||||
use Illuminate\Broadcasting\PrivateChannel;
|
||||
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
|
||||
use Illuminate\Foundation\Events\Dispatchable;
|
||||
use Illuminate\Queue\SerializesModels;
|
||||
|
||||
class ChatMessageSent implements ShouldBroadcast
|
||||
{
|
||||
use Dispatchable, InteractsWithSockets, SerializesModels;
|
||||
|
||||
/**
|
||||
* Create a new event instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
|
||||
public $message;
|
||||
public function __construct($message)
|
||||
{
|
||||
$this->message = $message;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the channels the event should broadcast on.
|
||||
*
|
||||
* @return \Illuminate\Broadcasting\Channel|array
|
||||
*/
|
||||
public function broadcastOn()
|
||||
{
|
||||
return new PrivateChannel('chat');
|
||||
|
||||
}
|
||||
}
|
||||
@@ -39,25 +39,23 @@ class DuitkuHelper
|
||||
];
|
||||
try {
|
||||
$transactionList = \Duitku\Pop::transactionStatus($merchantOrderId, $duitkuConfig);
|
||||
|
||||
header('Content-Type: application/json');
|
||||
|
||||
$transaction = json_decode($transactionList);
|
||||
|
||||
// var_dump($transactionList);
|
||||
|
||||
if ($transaction->statusCode == "00") {
|
||||
// Action Success
|
||||
} else if ($transaction->statusCode == "01") {
|
||||
// Action Pending
|
||||
if ($transaction->statusCode == "00" || $transaction->statusCode == "01") {
|
||||
// Transaksi berhasil atau dalam proses
|
||||
return $transaction;
|
||||
} else {
|
||||
// Action Failed Or Expired
|
||||
// Transaksi gagal atau kedaluwarsa
|
||||
return ['error' => true];
|
||||
}
|
||||
return $transaction;
|
||||
// return json_decode($transaction);
|
||||
} catch (\Duitku\Exceptions\DuitkuException $e) {
|
||||
// Tangani pengecualian yang terkait dengan Duitku
|
||||
return ['error' => true, 'message' => $e->getMessage()];
|
||||
} catch (Exception $e) {
|
||||
return $e->getMessage();
|
||||
// Tangani pengecualian umum
|
||||
return ['error' => true, 'message' => $e->getMessage()];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static function createInvoice($data)
|
||||
|
||||
32
app/Listeners/ProcessChatMessage.php
Normal file
32
app/Listeners/ProcessChatMessage.php
Normal file
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
namespace App\Listeners;
|
||||
|
||||
use App\Events\ChatMessageSent;
|
||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||
use Illuminate\Queue\InteractsWithQueue;
|
||||
|
||||
class ProcessChatMessage
|
||||
{
|
||||
/**
|
||||
* Create the event listener.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle the event.
|
||||
*
|
||||
* @param object $event
|
||||
* @return void
|
||||
*/
|
||||
public function handle(ChatMessageSent $event)
|
||||
{
|
||||
// Proses pesan yang diterima dari event
|
||||
$message = $event->message;
|
||||
}
|
||||
}
|
||||
17
app/Models/Channel.php
Normal file
17
app/Models/Channel.php
Normal file
@@ -0,0 +1,17 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class Channel extends Model
|
||||
{
|
||||
use HasFactory;
|
||||
protected $fillable = [
|
||||
'name',
|
||||
'type',
|
||||
'member_id',
|
||||
'doctor_id',
|
||||
];
|
||||
}
|
||||
@@ -52,6 +52,7 @@ class File extends Model
|
||||
'final-log-kondisi' => 'final-log/',
|
||||
'docs' => 'docs/',
|
||||
'additional-files' => 'additional-files/',
|
||||
'chat' => 'chat/',
|
||||
];
|
||||
|
||||
public function fileable()
|
||||
@@ -89,4 +90,15 @@ class File extends Model
|
||||
$file->storeAs('public/' . $directory, $fileName . '.' . $extension);
|
||||
return $path;
|
||||
}
|
||||
|
||||
public static function storeFileChat($type, $id, $file)
|
||||
{
|
||||
// $fileName = self::getFileName($type, $id);
|
||||
$fileName = $file->getClientOriginalName();
|
||||
$directory = self::getDirectory($type);
|
||||
$extension = $file->getClientOriginalExtension();
|
||||
$path = $directory . $fileName . '.' . $extension;
|
||||
$file->store('public/' .$path);
|
||||
return $path;
|
||||
}
|
||||
}
|
||||
|
||||
25
app/Models/Message.php
Normal file
25
app/Models/Message.php
Normal file
@@ -0,0 +1,25 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class Message extends Model
|
||||
{
|
||||
use HasFactory;
|
||||
protected $connection = 'mysql';
|
||||
protected $fillable = [
|
||||
'user_id',
|
||||
'channel_id',
|
||||
'content',
|
||||
'type',
|
||||
'from_user'
|
||||
];
|
||||
|
||||
public function files()
|
||||
{
|
||||
return $this->morphMany(File::class, 'fileable')->whereNull('deleted_at');
|
||||
}
|
||||
|
||||
}
|
||||
17
app/Models/UserChannel.php
Normal file
17
app/Models/UserChannel.php
Normal file
@@ -0,0 +1,17 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class UserChannel extends Model
|
||||
{
|
||||
use HasFactory;
|
||||
protected $connection = 'mysql';
|
||||
protected $fillable = [
|
||||
'user_id',
|
||||
'channel_id',
|
||||
];
|
||||
|
||||
}
|
||||
@@ -5,6 +5,7 @@ namespace App\Providers;
|
||||
use App\Events\ClaimApproved;
|
||||
use App\Listeners\LogClaimJournal;
|
||||
use App\Listeners\NotifyClaimRequested;
|
||||
use App\Listeners\ProcessChatMessage;
|
||||
use Illuminate\Auth\Events\Registered;
|
||||
use Illuminate\Auth\Listeners\SendEmailVerificationNotification;
|
||||
use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;
|
||||
@@ -29,6 +30,10 @@ class EventServiceProvider extends ServiceProvider
|
||||
ClaimApproved::class => [
|
||||
LogClaimJournal::class,
|
||||
],
|
||||
|
||||
ChatMessageSent::class => [
|
||||
ProcessChatMessage::class,
|
||||
],
|
||||
|
||||
];
|
||||
|
||||
|
||||
Reference in New Issue
Block a user