| | |
| | | ->args([ |
| | | 'id' => 'string|required', |
| | | 'content' => 'string|required', |
| | | 'user' => 'int|required' |
| | | ]) |
| | | ->register(); |
| | | |
| | |
| | | ->auth(PermissionHandler::combine(['nonce'])) |
| | | ->rateLimit(30) |
| | | ->args([ |
| | | 'user' => 'int|required', |
| | | 'items' => 'array|required', |
| | | 'id' => 'string' |
| | | ]) |
| | |
| | | { |
| | | $data = $request->get_params(); |
| | | $args = []; |
| | | $registrar = Registrar::getInstance($data['content']??''); |
| | | |
| | | foreach ($data as $key => $value) { |
| | | switch ($key) { |
| | | case 'depends_on': |
| | |
| | | case 'item_id': |
| | | if (is_numeric($value)) { |
| | | $args['item_id'] = absint($value); |
| | | if (!array_key_exists('post_id', $args)) { |
| | | $args['post_id'] = absint($value); |
| | | if ($registrar) { |
| | | switch ($registrar->getType()) { |
| | | case 'post': |
| | | $args['post_id'] = absint($value); |
| | | break; |
| | | case 'term': |
| | | $args['term_id'] = absint($value); |
| | | break; |
| | | case 'user': |
| | | $args['user_id'] = absint($value); |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | break; |
| | | // Post Type/Taxonomy |
| | | case 'content': |
| | | $key = str_replace('-', '_', $key); |
| | | if ($value === 'options' || array_key_exists($value, Registrar::getRegistered('post')) || Registrar::getInstance($key)->hasFeature('is_content')??false) { |
| | | $value = str_replace('-', '_', $value); |
| | | if ($value === 'options' || $registrar) { |
| | | $args['content'] = $value; |
| | | } |
| | | break; |
| | |
| | | break; |
| | | // User ID |
| | | case 'user': |
| | | if ($this->userCheck($value)) { |
| | | $args['user'] = (int) $value; |
| | | if (!array_key_exists('post_id', $args) && |
| | | !array_key_exists('post_id', $data) && |
| | | !array_key_exists('term_id', $data) && |
| | | !array_key_exists('item_id', $data)) { |
| | | $args['post_id'] = (int)get_user_meta((int) $value, BASE.'link', true); |
| | | } |
| | | if (!array_key_exists('post_id', $args) && |
| | | !array_key_exists('post_id', $data) && |
| | | !array_key_exists('term_id', $data) && |
| | | !array_key_exists('item_id', $data)) { |
| | | $args['post_id'] = (int)get_user_meta((int) $value, BASE.'profile_link', true); |
| | | } |
| | | |
| | | break; |
| | | // Operation ID |
| | | case 'id': |
| | |
| | | case 'field_key': |
| | | case 'field_type': |
| | | case 'subtype': |
| | | case 'item_id': |
| | | case 'context': |
| | | if (is_string($value)) { |
| | | $args[$key] = sanitize_text_field($value); |
| | | } |
| | | break; |
| | | } |
| | | $args['user'] = get_current_user_id(); |
| | | } |
| | | return $args; |
| | | } |
| | |
| | | $files = $request->get_file_params(); |
| | | $args = $this->buildUploadArgs($request); |
| | | |
| | | |
| | | if (!$args['user']) { |
| | | $userID = get_current_user_id(); |
| | | if (!$userID) { |
| | | return $this->unauthorized(); |
| | | } |
| | | if (!$args['content']) { |
| | |
| | | error_log('With ID: '.print_r($args['upload'], true)); |
| | | $queuedProcessing = JVB()->queue()->queueOperation( |
| | | $operation_type, |
| | | $args['user'], |
| | | get_current_user_id(), |
| | | array_merge( |
| | | ['secured_files' => $secured_data['files']], |
| | | $args |
| | |
| | | if (!$queuedProcessing['updated_existing']) { |
| | | JVB()->queue()->queueOperation( |
| | | 'attach_upload_to_content', |
| | | $args['user'], |
| | | get_current_user_id(), |
| | | $args, |
| | | [ |
| | | 'priority' => 'high', |
| | |
| | | |
| | | JVB()->queue()->queueOperation( |
| | | 'temporary_cleanup', |
| | | $args['user'], |
| | | get_current_user_id(), |
| | | [ |
| | | 'files' => $secured_data['files'], |
| | | 'context' => $args, |
| | |
| | | } elseif (array_key_exists('term_id', $data)) { |
| | | $meta = Meta::forTerm($data['term_id']); |
| | | } else { |
| | | $link = (int)get_user_meta($data['user'], BASE.'link'); |
| | | $link = (int)get_user_meta($data['user'], BASE.'profile_link'); |
| | | $meta = Meta::forPost($link); |
| | | } |
| | | |
| | |
| | | |
| | | // Update with comma-separated string |
| | | $meta->set($data['field_name'], implode(',', $all_ids)); |
| | | $meta->save(); |
| | | } |
| | | |
| | | /** |
| | |
| | | $files = $request->get_file_params(); |
| | | $args = $this->buildUploadArgs($request); |
| | | |
| | | if (!array_key_exists('user', $args) || $args['user'] === 0){ |
| | | if (!$args['user']) { |
| | | return $this->unauthorized(); |
| | | } |
| | | if (!array_key_exists('content', $args) || empty($args['content'])) { |