Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Есть ли генератор meta на основе entity_path и entity_id? #12

Closed
alexander-mart opened this issue Oct 15, 2023 · 1 comment

Comments

@alexander-mart
Copy link
Contributor

В модуле есть методы buildFilter и buildQuery. Есть ли в модуле что-то вроде этого?

Либо такой метод не нужен, т. к. для построения тела запроса есть какие-то другие инструменты самого МС API 🤔

export const build_entity_meta = (api_endpoint, entity_name, entity_uuid) => ({
  href        : `${api_endpoint}/entity/${entity_name}/${entity_uuid}`,
  metadataHref: `${api_endpoint}/entity/${entity_name}/metadata`,
  type        : entity_name,
  mediaType   : 'application/json'
})
@wmakeev
Copy link
Owner

wmakeev commented Oct 31, 2023

Для meta достаточно указывать только type и href. Для большего удобства я для этой задачи использую библиотеку moysklad-helpers. Правда сейчас там нет документации 😔, но есть тесты.

Для примера я делаю так:

import Moysklad from 'moysklad'
import { getHelpers } from 'moysklad-helpers'

const ms = Moysklad()

// Есть и другие методы, эти три больше подходят как иллюстрация к вашему вопросу
const { ref, attr, meta } = getHelpers(ms)

const patch = {
  meta: meta('entity/customerorder/e0b4a992-f9c5-44aa-8cee-0fa0257a95e6'),
  state: ref('entity/customerorder/metadata/states/ef9d14cc-d1e3-11ec-0a80-0c6a000ceab9'),
  attributes: [
    // Поле справочник
    attr(
      'entity/customerorder/metadata/attributes/39f9f7bc-d4da-11e4-95df-0cc47a05161a',
      ref('entity/customentity/8280660e-48ec-4015-896d-239f116ddad7/515d1f0f-cd2d-458c-8840-864cc4e96089')
    ),
    // Поле число
    attr('entity/customerorder/metadata/attributes/1234f7bc-d4da-11e4-95df-0cc47a051000', 42)
  ]
}

await ms.POST('entity/customerorder', [patch])

Эти методы не включены в основную библиотеку, чтобы не усложнять и нет уверенности, что это там необходимо.

@wmakeev wmakeev closed this as completed Oct 31, 2023
@wmakeev wmakeev pinned this issue Oct 31, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants