Add scheduled messages
This commit is contained in:
parent
1a5371a7b9
commit
66031eff47
30
src/API.php
30
src/API.php
@ -40,6 +40,8 @@ class API
|
|||||||
'dialog.open'=>'', // No scope required
|
'dialog.open'=>'', // No scope required
|
||||||
'pins.add'=>'pins:write',
|
'pins.add'=>'pins:write',
|
||||||
'pins.remove'=>'pins:write',
|
'pins.remove'=>'pins:write',
|
||||||
|
'chat.scheduleMessage'=>'chat:write',
|
||||||
|
'chat.scheduledMessages.list'=>'',
|
||||||
'team.info'=>'team:read',
|
'team.info'=>'team:read',
|
||||||
'views.open'=>'', // No scope required
|
'views.open'=>'', // No scope required
|
||||||
'views.publish'=>'', // No scope required
|
'views.publish'=>'', // No scope required
|
||||||
@ -226,6 +228,34 @@ class API
|
|||||||
return new Generic($this->execute('chat.postMessage',json_encode($request)));
|
return new Generic($this->execute('chat.postMessage',json_encode($request)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Schedule a slack message
|
||||||
|
*
|
||||||
|
* @param Message $request
|
||||||
|
* @return Generic
|
||||||
|
* @throws \Exception
|
||||||
|
*/
|
||||||
|
public function scheduleMessage(Message $request): Generic
|
||||||
|
{
|
||||||
|
Log::debug(sprintf('%s:Scheduling a Slack Message',static::LOGKEY),['m'=>__METHOD__,'r'=>$request]);
|
||||||
|
|
||||||
|
return new Generic($this->execute('chat.scheduleMessage',json_encode($request)));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the scheduled messages
|
||||||
|
*
|
||||||
|
* @param Message $request
|
||||||
|
* @return Generic
|
||||||
|
* @throws \Exception
|
||||||
|
*/
|
||||||
|
public function scheduleMessagesList(string $request=NULL): Generic
|
||||||
|
{
|
||||||
|
Log::debug(sprintf('%s:Get the Scheduled Messages in Slack',static::LOGKEY),['m'=>__METHOD__,'r'=>$request]);
|
||||||
|
|
||||||
|
return new Generic($this->execute('chat.scheduledMessages.list',$request ? ['channel'=>$request] : []));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Remove a Pin from a message
|
* Remove a Pin from a message
|
||||||
*
|
*
|
||||||
|
@ -150,6 +150,22 @@ class Message implements \JsonSerializable
|
|||||||
return $response;
|
return $response;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Schedule a message
|
||||||
|
*
|
||||||
|
* @param Carbon $time
|
||||||
|
* @return Generic
|
||||||
|
*/
|
||||||
|
public function schedule(Carbon $time): Generic
|
||||||
|
{
|
||||||
|
$this->_data->put('post_at',$time->timestamp);
|
||||||
|
|
||||||
|
$api = $this->o->team->slackAPI();
|
||||||
|
$response = $this->_data->has('ts') ? $api->updateMessage($this) : $api->scheduleMessage($this);
|
||||||
|
|
||||||
|
return $response;
|
||||||
|
}
|
||||||
|
|
||||||
public function setReplace(bool $replace=TRUE): self
|
public function setReplace(bool $replace=TRUE): self
|
||||||
{
|
{
|
||||||
$this->_data->put('replace_original',$replace ? 'true' : 'false');
|
$this->_data->put('replace_original',$replace ? 'true' : 'false');
|
||||||
|
@ -51,6 +51,7 @@ class Base extends SlackBase implements \JsonSerializable
|
|||||||
return object_get($this->_data,$key) ?: object_get($this->_data,'channel');
|
return object_get($this->_data,$key) ?: object_get($this->_data,'channel');
|
||||||
|
|
||||||
case 'messages': // Used by getMessageHistory()
|
case 'messages': // Used by getMessageHistory()
|
||||||
|
case 'scheduled_messages': // Used by scheduledMessagesList()
|
||||||
return collect(object_get($this->_data,$key));
|
return collect(object_get($this->_data,$key));
|
||||||
|
|
||||||
case 'team_id':
|
case 'team_id':
|
||||||
|
Loading…
Reference in New Issue
Block a user