/** * Test that when we can update other stuff through group object * * @since 0.4.0 * * @group group * @group group_object * * @covers \ingot\testing\object\group::get_group_config() * @covers \ingot\testing\object\group::update_group() */ public function testUpdateThroughObject() { $groups = ingot_tests_make_groups(true, 1, 3); $id = $groups['ids'][0]; $this->assertTrue(is_numeric($id)); $variants = $groups['variants'][$id]; $obj = new \ingot\testing\object\group($id); $this->assertEquals($variants, $obj->get_group_config()['variants']); $new_data = ['name' => 'BATMAN']; $obj->update_group($new_data); $group = \ingot\testing\crud\group::read($id); $this->assertEquals('BATMAN', $group['name']); $new_data = ['name' => 'Hi Roy', 'sub_type' => 'button_color']; $obj->update_group($new_data); $group = \ingot\testing\crud\group::read($id); $this->assertEquals('Hi Roy', $group['name']); $this->assertEquals('button_color', $group['sub_type']); }
/** * Update a group * * @since 0.4.0 * * @param \WP_REST_Request $request Full data about the request. * @return \WP_Error|\WP_REST_Response */ public function update_item($request) { $url = $request->get_url_params(); $id = helpers::v('id', $url, 0); $existing = group::read($id); if (!is_array($existing)) { if (is_wp_error($existing)) { return $existing; } return ingot_rest_response(['message' => esc_html__('No group found', 'ingot')]); } $obj = new \ingot\testing\object\group($existing); $group_args = $this->prepare_item_for_database($request); $obj->update_group($group_args); return ingot_rest_response($this->prepare_group($obj->get_group_config(), $request->get_param('context')), 201); }