public function lex_dbeDtoUpdatesOnly($browserId, $lastFetchTime = null) { $sessionLabel = 'lexDbeFetch_' . $browserId; if ($lastFetchTime == null) { $lastFetchTime = $this->app['session']->get($sessionLabel); } $this->app['session']->set($sessionLabel, time()); if ($lastFetchTime) { $lastFetchTime = $lastFetchTime - 5; // 5 second buffer return LexDbeDto::encode($this->projectId, $this->userId, $lastFetchTime); } else { return LexDbeDto::encode($this->projectId, $this->userId); } }
function testEncode_EntriesAndLoadPartial_PartialOk() { $e = new LexiconMongoTestEnvironment(); $e->clean(); $userId = $e->createUser("User", "Name", "*****@*****.**"); $user = new UserModel($userId); $user->role = SystemRoles::USER; $project = $e->createProject(SF_TESTPROJECT, SF_TESTPROJECTCODE); $projectId = $project->id->asString(); $project->addUser($userId, ProjectRoles::CONTRIBUTOR); $user->addProject($projectId); $user->write(); $project->write(); $sense = new Sense(); $sense->definition->form('en', 'apple'); for ($i = 9; $i >= 0; $i--) { $entry = new LexEntryModel($project); $entry->lexeme->form('th', 'Apfel' . $i); $entry->senses[] = $sense; $entry->write(); } $result = LexDbeDto::encode($projectId, $userId, null, 5); $this->assertEqual(count($result['entries']), 5); $this->assertEqual($result['itemCount'], 5); $this->assertEqual($result['itemTotalCount'], 10); $this->assertEqual($result['entries'][0]['lexeme']['th']['value'], 'Apfel0', 'Apfel0 should sort first'); $this->assertEqual($result['entries'][4]['lexeme']['th']['value'], 'Apfel4', 'Apfel4 should sort first'); $result = LexDbeDto::encode($projectId, $userId, null, 9); $this->assertEqual(count($result['entries']), 1); $this->assertEqual($result['itemCount'], 1); $this->assertEqual($result['itemTotalCount'], 10); $this->assertEqual($result['entries'][0]['lexeme']['th']['value'], 'Apfel0', 'Apfel0 should sort first'); }