2019-03-19 10:55:27 +01:00
|
|
|
<?php
|
|
|
|
App::uses('AppModel', 'Model');
|
|
|
|
|
|
|
|
class RestClientHistory extends AppModel
|
|
|
|
{
|
|
|
|
public $belongsTo = array(
|
2022-04-10 15:01:23 +02:00
|
|
|
'Org' => array(
|
|
|
|
'className' => 'Organisation',
|
|
|
|
'foreignKey' => 'org_id',
|
|
|
|
'order' => array(),
|
|
|
|
'fields' => array('id', 'name', 'uuid')
|
|
|
|
),
|
|
|
|
'User' => array(
|
|
|
|
'className' => 'User',
|
|
|
|
'foreignKey' => 'user_id',
|
|
|
|
'order' => array(),
|
|
|
|
'fields' => array('id', 'email')
|
|
|
|
),
|
|
|
|
);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @param array $user
|
|
|
|
* @param array $history
|
|
|
|
* @return void
|
|
|
|
* @throws Exception
|
|
|
|
*/
|
|
|
|
public function insert(array $user, array $history)
|
|
|
|
{
|
|
|
|
$history['org_id'] = $user['org_id'];
|
|
|
|
$history['user_id'] = $user['id'];
|
|
|
|
|
|
|
|
$this->create();
|
|
|
|
$this->save($history, ['atomic' => false]);
|
|
|
|
$this->cleanup($user['id']);
|
|
|
|
}
|
2019-03-19 10:55:27 +01:00
|
|
|
|
|
|
|
public function cleanup($user_id)
|
|
|
|
{
|
2021-06-12 19:02:26 +02:00
|
|
|
$keepIds = $this->find('column', array(
|
2019-03-19 10:55:27 +01:00
|
|
|
'conditions' => array(
|
|
|
|
'RestClientHistory.user_id' => $user_id
|
|
|
|
),
|
|
|
|
'page' => 1,
|
|
|
|
'limit' => 10,
|
|
|
|
'order' => array('RestClientHistory.timestamp DESC'),
|
2021-06-12 19:02:26 +02:00
|
|
|
'fields' => array('RestClientHistory.id')
|
2019-03-19 10:55:27 +01:00
|
|
|
));
|
|
|
|
$this->deleteAll(array(
|
|
|
|
'RestClientHistory.user_id' => $user_id,
|
|
|
|
'RestClientHistory.bookmark' => 0,
|
|
|
|
'NOT' => array(
|
2021-06-12 19:02:26 +02:00
|
|
|
'RestClientHistory.id' => $keepIds
|
2019-03-19 10:55:27 +01:00
|
|
|
)
|
2022-04-10 15:01:23 +02:00
|
|
|
), false);
|
2019-03-19 10:55:27 +01:00
|
|
|
}
|
|
|
|
}
|