लेबल अपडेट करना

अपडेट के अनुरोधों का एक सेट लागू करके, किसी एक लेबल को अपडेट किया जा सकता है. इससे, ड्राफ़्ट में बदलाव का नया वर्शन बन जाता है. उदाहरण के लिए, किसी मौजूदा लेबल की प्रॉपर्टी (लेबल की जानकारी) को अपडेट किया जा सकता है या लेबल में कोई नया Field जोड़ा जा सकता है.

लेबल अपडेट, एक साथ कई अपडेट करने की सुविधा के तौर पर काम करता है. ऐसा इसलिए होता है, क्योंकि यह तरीका अपडेट किए जाने वाले Request ऑब्जेक्ट की सूची लेता है. यह एक साथ कई अनुरोध करने के अनुरोध में बताए गए क्रम के हिसाब से अपडेट करता है. एक साथ कई बदलाव करने की सुविधा में, एक साथ कई बदलाव लागू किए जाते हैं. इसका मतलब है कि अगर बैच में मौजूद कोई अनुरोध पूरा नहीं होता है, तो पूरा अपडेट पूरा नहीं होता और (संभावित रूप से) कोई भी बदलाव लागू नहीं होता. लेबल में कोई बदलाव नहीं किया जाता.

अगर अपडेट पूरा हो जाता है, तो बदलावों को Drive के किसी भी आइटम के साथ इस्तेमाल करने से पहले, ड्राफ़्ट में किए गए बदलावों को पब्लिश करना ज़रूरी है.

लेबल ऑब्जेक्ट अपडेट करना

लेबल में कई अन्य तरह के ऑब्जेक्ट शामिल होते हैं, जिन्हें अपडेट किया जा सकता है. जैसे:

  • लेबल प्रॉपर्टी
  • फ़ील्ड और फ़ील्ड टाइप
  • चुनने के विकल्प और चुनने के विकल्प की प्रॉपर्टी

ये ऐसे कई ऑब्जेक्ट हैं जो किसी लेबल के दिखने और काम करने के तरीके को कंट्रोल करते हैं.

ऑपरेशन की कैटगरी

labels.delta तरीके से किए जा सकने वाले इन ऑपरेशन को इन मुख्य कैटगरी में बांटा जा सकता है:

कैटगरी ब्यौरा
बनाएंऑब्जेक्ट जोड़ें.
अपडेट करेंकिसी ऑब्जेक्ट की कुछ प्रॉपर्टी अपडेट करना.
चालू करेंऑब्जेक्ट चालू करें.
बंद करेंऑब्जेक्ट की सुविधा बंद करें.
मिटाएंऑब्जेक्ट हटाएं.

अगले सेक्शन में, इन कैटगरी का इस्तेमाल कुछ खास ऑपरेशन के व्यवहार के बारे में बताने के लिए किया जाता है.

अनुरोधों को अपडेट करना

labels.delta तरीका, एक या एक से ज़्यादा Request ऑब्जेक्ट लेकर काम करता है. हर ऑब्जेक्ट, एक तरह के अनुरोध के बारे में बताता है. अनुरोध कई तरह के होते हैं. यहां अलग-अलग कैटगरी में बांटकर, अनुरोधों के टाइप के बारे में जानकारी दी गई है.

अनुरोध का टाइप
लेबल प्रॉपर्टी
अपडेट करें UpdateLabelPropertiesRequest
फ़ील्ड
बनाएं CreateFieldRequest
अपडेट करें UpdateFieldPropertiesRequest
UpdateFieldTypeRequest
चालू करें EnableFieldRequest
बंद करें DisableFieldRequest
मिटाएं DeleteFieldRequest
चुने गए विकल्प
बनाएं CreateSelectionChoiceRequest
अपडेट करें UpdateSelectionChoicePropertiesRequest
चालू करें EnableSelectionChoiceRequest
बंद करें DisableSelectionChoiceRequest
मिटाएं DeleteSelectionChoiceRequest

फ़ील्ड मास्क

"अपडेट करें" और "बंद करें" टाइप के कई अनुरोधों के लिए, FieldMask की ज़रूरत होती है. यह फ़ील्ड की सूची है, जिसमें कॉमा लगा है. इसमें उन फ़ील्ड के नाम होते हैं जिन्हें अपडेट करना है. हालांकि, अन्य फ़ील्ड में कोई बदलाव नहीं किया जाता. मास्क की ज़रूरत होती है, ताकि यह पक्का किया जा सके कि सिर्फ़ वे फ़ील्ड अपडेट किए जाएं जिनमें आपको बदलाव करना है. आपको कम से कम एक फ़ील्ड की जानकारी देनी होगी.

का इस्तेमाल करने से बचें.

उदाहरण

किसी लेबल को अपडेट करने के लिए, labels कलेक्शन पर delta तरीके का इस्तेमाल करें.

आपको यह जानकारी भी देनी होगी:

  • उपयोगकर्ता के एडमिन क्रेडेंशियल का इस्तेमाल करने के लिए, useAdminAccess true है. ऐक्सेस देने से पहले, सर्वर यह पुष्टि करता है कि उपयोगकर्ता, लेबल का एडमिन है या नहीं.

  • Request, जो लेबल पर लागू होने वाले अपडेट के बारे में बताता है.

  • property तरीके से लेबल title.

  • एक या उससे ज़्यादा Field.

  • हर लेबल को दिखाने वाला लेबल रिसॉर्स. इसमें एक संसाधन Name और ID होता है, जो लेबल के लिए दुनिया भर में मान्य यूनीक आइडेंटिफ़ायर होता है.

  • LabelView, लेबल किए गए जवाबों पर लागू किए गए संसाधन व्यू को सेट करने के लिए LABEL_VIEW_FULL है. LABEL_VIEW_FULL सभी संभावित फ़ील्ड दिखाता है.

इस उदाहरण में, सही लेबल अपडेट करने के लिए ID का इस्तेमाल किया गया है.

PythonNode.js
body = {
'use_admin_access': True,
'requests': [{
  'update_label': {
    'properties': {
      'title': 'TITLE'
    },
    'update_mask': {
      'paths': ['title']
    }
  },
}, {
  'create_field': {
    'field': {
      'properties': {
        'display_name': 'DISPLAY_NAME'
      },
      'text_options': {}
    }
  }
}],
'view': 'LABEL_VIEW_FULL'
}
response = service.labels().delta(
  body=body,
  name='labels/ID').execute()
var body = {
  'use_admin_access': true,
  'requests': [{
    'update_label': {
      'properties': {
        'title': 'TITLE'
      },
      'update_mask': {
        'paths': ['title']
      }
    },
  }, {
    'create_field': {
      'field': {
        'properties': {
          'display_name': 'DISPLAY_NAME'
        },
        'text_options': {}
      }
    }
  }],
  'view': 'LABEL_VIEW_FULL'
};
service.labels.delta({
  'resource': body,
  'name': 'labels/ID'
}, (err, res) => {
  if (err) return console.error('The API returned an error: ' + err);
  console.log(res);
});

लेबल, फ़ील्ड या विकल्प अपडेट हो जाता है. साथ ही, लेबल के रिविज़न आईडी में बढ़ोतरी होती है और लेबल को ड्राफ़्ट लेबल के तौर पर डेटाबेस में सेव किया जाता है. लेबल में PUBLISHED के साथ State और hasUnpublishedChanges=true है. इसका मतलब है कि ड्राफ़्ट में बदलाव किए गए हैं, लेकिन वे उपयोगकर्ताओं के लिए उपलब्ध नहीं हैं. उपयोगकर्ताओं को बदलाव दिखने से पहले, अपडेट किया गया लेबल PUBLISHED होना चाहिए. ज़्यादा जानकारी के लिए, लेबल का लाइफ़साइकल देखें.