function test_get_workers_by_service() { $args = $this->factory->user->generate_args(); $user_id_1 = $this->factory->user->create_object($args); $args = $this->factory->user->generate_args(); $user_id_2 = $this->factory->user->create_object($args); $service_id_1 = appointments_insert_service(array('name' => 'My Service')); $service_id_2 = appointments_insert_service(array('name' => 'My Service 2')); $args = array('ID' => $user_id_1, 'price' => '19.7', 'services_provided' => array($service_id_1), 'dummy' => true); appointments_insert_worker($args); $args = array('ID' => $user_id_2, 'price' => '19.7', 'services_provided' => array($service_id_1, $service_id_2), 'dummy' => true); appointments_insert_worker($args); $workers = appointments_get_workers_by_service($service_id_1); $this->assertCount(2, $workers); $workers = appointments_get_workers_by_service($service_id_2); $this->assertCount(1, $workers); }
/** * Get workers giving a specific service (by its ID) * We assume total number of workers is not too high, which is the practical case. * Otherwise this method would be expensive * @param ID: Id of the service to be retrieved * @param order_by: ORDER BY clause for mysql * @return array of objects */ function get_workers_by_service($ID, $order_by = "ID") { $workers = appointments_get_workers_by_service($ID, $order_by); if (empty($workers)) { return false; } return $workers; }