Home Reference Source

lib/api/optionvalue.js

import { get } from '../methods/get';
import { post } from '../methods/post';
import { remove } from '../methods/remove';
import { put } from '../methods/put';

/**
 * GET /admin/option_names/{option_name_id}/option_values/{option_value_id}.json
 *
 * Examples:
 *
 *      insales.getOptionValue({
 *        token: '1234567890',
 *        url: 'shop-test.myinsales.ru',
 *        optionnameid: '1',
 *        optionvalueid: '2'
 *      }).then(response => {
 *        console.info(response.data);
 *      }).catch(err => {
 *        console.error(err);
 *      });
 * Output:
 *
 *      {
 *        "id": 2,
 *        "option_name_id": 1,
 *        "position": 2,
 *        "title": "Зеленый",
 *        "image_url": null,
 *        "permalink": null
 *      }
 * @param {Object} options
 * @param {string} options.token Required, access token for shop
 * @param {string} options.url Required, shop url
 * @param {number|string} options.optionnameid Required, option name id
 * @param {number|string} options.optionvalueid Required, option value id
 * @param {Number|String} id Required, app id
 * @returns {Promise}
 */
export function getOptionValue(options, id) {
  return get({
    id,
    token: options.token,
    url: options.url,
    api: `option_names/${options.optionnameid}/option_values/${options.optionvalueid}`
  });
}

/**
 * GET /admin/option_names/{option_name_id}/option_values.json
 *
 * Examples:
 *
 *      insales.listOptionValue({
 *        token: '1234567890',
 *        url: 'shop-test.myinsales.ru',
 *        optionnameid: '1'
 *      }).then(response => {
 *        console.info(response.data);
 *      }).catch(err => {
 *        console.error(err);
 *      });
 * Output:
 *
 *      [
 *        {
 *          "id": 1,
 *          "option_name_id": 1,
 *          "position": 1,
 *          "title": "Red",
 *          "image_url": null,
 *          "permalink": null
 *        },
 *        {
 *          "id": 2,
 *          "option_name_id": 1,
 *          "position": 2,
 *          "title": "Зеленый",
 *          "image_url": null,
 *          "permalink": null
 *        },
 *        {
 *          "id": 3,
 *          "option_name_id": 1,
 *          "position": 3,
 *          "title": "Базовая",
 *          "image_url": null,
 *          "permalink": null
 *        },
 *        {
 *          "id": 20,
 *          "option_name_id": 1,
 *          "position": 20,
 *          "title": "Синий-10",
 *          "image_url": null,
 *          "permalink": null
 *        }
 *      ]
 * @param {Object} options
 * @param {string} options.token Required, access token for shop
 * @param {string} options.url Required, shop url
 * @param {number|string} options.optionnameid Required, option name id
 * @param {Number|String} id Required, app id
 * @returns {Promise}
 */
export function listOptionValue(options, id) {
  return get({
    id,
    token: options.token,
    url: options.url,
    api: `option_names/${options.optionnameid}/option_values`
  });
}

/**
 * GET /admin/option_values.json
 *
 * Examples:
 *
 *      insales.listAllOptionValue({
 *        token: '1234567890',
 *        url: 'shop-test.myinsales.ru'
 *      }).then(response => {
 *        console.info(response.data);
 *      }).catch(err => {
 *        console.error(err);
 *      });
 * Output:
 *
 *      [
 *        {
 *          "id": 1,
 *          "option_name_id": 1,
 *          "position": 1,
 *          "title": "Red",
 *          "image_url": null,
 *          "permalink": null
 *        },
 *        {
 *          "id": 2,
 *          "option_name_id": 1,
 *          "position": 2,
 *          "title": "Зеленый",
 *          "image_url": null,
 *          "permalink": null
 *        },
 *        {
 *          "id": 3,
 *          "option_name_id": 1,
 *          "position": 3,
 *          "title": "Базовая",
 *          "image_url": null,
 *          "permalink": null
 *        },
 *        {
 *          "id": 4,
 *          "option_name_id": 3,
 *          "position": 1,
 *          "title": "Синий",
 *          "image_url": null,
 *          "permalink": null
 *        },
 *        {
 *          "id": 20,
 *          "option_name_id": 1,
 *          "position": 20,
 *          "title": "Синий-10",
 *          "image_url": null,
 *          "permalink": null
 *        }
 *      ]
 * @param {Object} options
 * @param {string} options.token Required, access token for shop
 * @param {string} options.url Required, shop url
 * @param {Number|String} id Required, app id
 * @returns {Promise}
 */
export function listAllOptionValue(options, id) {
  return get({
    id,
    token: options.token,
    url: options.url,
    api: `option_values`
  });
}

/**
 * POST /admin/option_names/{option_name_id}/option_values.json
 *
 * Examples:
 *
 *      insales.createOptionValue({
 *        token: '1234567890',
 *        url: 'shop-test.myinsales.ru',
 *        optionnameid: '1',
 *        optionvalue: {
 *          "option_value": {
 *            "title": "Blue",
 *            "image": {
 *              "filename": "image.jpg",
 *              "attachment": "/9j/4AAQSkZJRgABAQEASABIAAD//gA+Q1JFQVRPUjogZ2QtanBlZyB2MS4w\nICh1c2luZyBJSkcgSlBFRyB2NjIpLCBkZWZhdWx0IHF1YWxpdHkK/9sAQwAG\nBAUGBQQGBgUGBwcGCAoQCgoJCQoUDg8MEBcUGBgXFBYWGh0lHxobIxwWFiAs\nICMmJykqKRkfLTAtKDAlKCko/9sAQwEHBwcKCAoTCgoTKBoWGigoKCgoKCgo\nKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo/8AA\nEQgAWQBkAwEiAAIRAQMRAf/EAB0AAAEEAwEBAAAAAAAAAAAAAAgABQYHAQME\nAgn/xABEEAABAwMBBAYHBgIHCQAAAAABAgMEAAURBgcSITEIE0FRYYEUIjJx\nkbHSIzd1lKGzFRg1QkNSYqLwJSYzY3KCksLT/8QAGQEAAgMBAAAAAAAAAAAA\nAAAAAAEDBAUC/8QAIxEAAgICAgIBBQAAAAAAAAAAAAECEQMEEjEhQVEFEyIz\ngf/aAAwDAQACEQMRAD8AKmlVT7Q9oF4sGqV223NxFthpC0hxoqUSQSeO8O6o\ncvbbd23ktO/w5LiuASWFDP8AmrlzivDY+LqwiaVDwNtl5KlpDUTeQMqHobvA\nfGtLm3G9IRvlFvCOPFUZwf8AtS+7D5EEbSoYv5g7qpwIaNqUonAHo7nP/wAq\n4pHSQujDq2nFWhLiCUqSqO5kEdntV1YBVUqEtfSXvGfVVZvy7n1VpV0mL7n1\nTZfyzn1UwC6pUIKukzqDs/gv5Zz661npM6j7DZfyrn10AGFSoOVdJnU39X+C\n/lXPrr2OkjqlxIDD1jW6R/wxDdz8SrFABh0qZ9IXB67aTs1xlhAkS4bL7m4M\nJ3lIBOB2DJpUAUNt3usew67NzmRm5LLbbSeqcGQSUKA4VV8rag2JoQxY7e2w\nocFdWARU86UPUpvxVKSpbG/F6xCTglPrZwe/FVDb1Q4Vyc9HjIQyyvAku4cc\nHHhugjdB8s+NUtnHjk7mrJY5JKPFPwXBZro07aWp98YMVCsKaQ4d31f76u4d\n3fXq/SrdfYhTYoMVx5KSClZwV45lIJ9Y+GKi1usV01pdWFMOmW2jGX3DlpA7\nCByJ9/Luq2bZpyBpiE21bCHZ6R68pwZDiu0b3+h4VhuEMfn38fBS2c1A26g0\n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\nPbx1i8+dO7ER5A9ZQpxpUxGkNKA5ilW6lQB//9k=\n"
 *            }
 *          }
 *        }
 *      }).then(response => {
 *        console.info(response.data);
 *      }).catch(err => {
 *        console.error(err);
 *      });
 * Output:
 *
 *      {
 *        "id": 21063492,
 *        "option_name_id": 1,
 *        "position": 21,
 *        "title": "Blue",
 *        "image_url": "http://minio.insales.io:9000/insales-test-sber/images/option_values/1/1860/21063492/thumb/image.jpg?1792613669",
 *        "permalink": "blue"
 *      }
 * @param {Object} options
 * @param {string} options.token Required, access token for shop
 * @param {string} options.url Required, shop url
 * @param {number|string} options.optionnameid Required, option name id
 * @param {object} options.optionvalue Required, option value
 * @param {Number|String} id Required, app id
 * @returns {Promise}
 */
export function createOptionValue(options, id) {
  return post({
    id,
    token: options.token,
    url: options.url,
    api: `option_names/${options.optionnameid}/option_values`,
    obj: options.optionvalue
  });
}

/**
 * DELETE /admin/option_names/{option_name_id}/option_values/{option_value_id}.json
 *
 * Examples:
 *
 *      insales.removeOptionValue({
 *        token: '1234567890',
 *        url: 'shop-test.myinsales.ru',
 *        optionnameid: '1',
 *        optionvalueid: '20'
 *      }).then(response => {
 *        console.info(response.data);
 *      }).catch(err => {
 *        console.error(err);
 *      });
 * Output:
 *
 *      {
 *        "id": 20,
 *        "jid": 1229
 *      }
 * @param {Object} options
 * @param {string} options.token Required, access token for shop
 * @param {string} options.url Required, shop url
 * @param {number|string} options.optionnameid Required, option name id
 * @param {number|string} options.optionvalueid Required, option value id
 * @param {Number|String} id Required, app id
 * @returns {Promise}
 */
export function removeOptionValue(options, id) {
  return remove({
    id,
    token: options.token,
    url: options.url,
    api: `option_names/${options.optionnameid}/option_values/${options.optionvalueid}`
  });
}

/**
 * PUT /admin/option_names/{option_name_id}/option_values/{option_value_id}.json
 *
 * Examples:
 *
 *      insales.editOptionValue({
 *        token: '1234567890',
 *        url: 'shop-test.myinsales.ru',
 *        optionnameid: '1',
 *        optionvalueid: '2',
 *        optionvalue: {
 *          "option_value": {
 *            "position": 3,
 *            "image": {
 *              "src": "https://abc.myinsales.ru/images/no_image_compact.jpg"
 *            }
 *          }
 *        }
 *      }).then(response => {
 *        console.info(response.data);
 *      }).catch(err => {
 *        console.error(err);
 *      });
 * Output:
 *
 *      {
 *        "id": 2,
 *        "option_name_id": 1,
 *        "position": 3,
 *        "title": "Зеленый",
 *        "image_url": "http://minio.insales.io:9000/insales-test-sber/images/option_values/1/2/2/thumb/no_image_compact.jpg?1792613669",
 *        "permalink": "zelenyy"
 *      }
 * @param {Object} options
 * @param {string} options.token Required, access token for shop
 * @param {string} options.url Required, shop url
 * @param {number|string} options.optionnameid Required, option name id
 * @param {number|string} options.optionvalueid Required, option value id
 * @param {object} options.optionvalue Required, option value
 * @param {Number|String} id Required, app id
 * @returns {Promise}
 */
export function editOptionValue(options, id) {
  return put({
    id,
    token: options.token,
    url: options.url,
    api: `option_names/${options.optionnameid}/option_values/${options.optionvalueid}`,
    obj: options.optionvalue
  });
}

/**
 * GET /admin/option_names/{option_name_id}/option_values/{option_value_id}/destroy_status.json
 *
 * Examples:
 *
 *      insales.getOptionValueDestroyStatus({
 *        token: '1234567890',
 *        url: 'shop-test.myinsales.ru',
 *        optionnameid: '1',
 *        optionvalueid: '20'
 *      }).then(response => {
 *        console.info(response.data);
 *      }).catch(err => {
 *        console.error(err);
 *      });
 * Output:
 *
 *      {
 *        "status": "error",
 *        "error": "Not deleted"
 *      }
 * @param {Object} options
 * @param {string} options.token Required, access token for shop
 * @param {string} options.url Required, shop url
 * @param {number|string} options.optionnameid Required, option name id
 * @param {number|string} options.optionvalueid Required, option value id
 * @param {Number|String} id Required, app id
 * @returns {Promise}
 */
export function getOptionValueDestroyStatus(options, id) {
  return get({
    id,
    token: options.token,
    url: options.url,
    api: `option_names/${options.optionnameid}/option_values/${options.optionvalueid}/destroy_status`
  });
}

/**
 * DELETE /admin/option_names/{option_name_id}/option_values/{option_value_id}/destroy_image.json
 *
 * Examples:
 *
 *      insales.removeOptionValueImage({
 *        token: '1234567890',
 *        url: 'shop-test.myinsales.ru',
 *        optionnameid: '1',
 *        optionvalueid: '20'
 *      }).then(response => {
 *        console.info(response.data);
 *      }).catch(err => {
 *        console.error(err);
 *      });
 * Output:
 *
 *      {
 *        "id": 20,
 *        "option_name_id": 1,
 *        "position": 20,
 *        "title": "Синий-10",
 *        "image_url": null,
 *        "permalink": "siniy-10"
 *      }
 * @param {Object} options
 * @param {string} options.token Required, access token for shop
 * @param {string} options.url Required, shop url
 * @param {number|string} options.optionnameid Required, option name id
 * @param {number|string} options.optionvalueid Required, option value id
 * @param {Number|String} id Required, app id
 * @returns {Promise}
 */
export function removeOptionValueImage(options, id) {
  return remove({
    id,
    token: options.token,
    url: options.url,
    api: `option_names/${options.optionnameid}/option_values/${options.optionvalueid}/destroy_image`
  });
}