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

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

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

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

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

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

  • लेबल Properties
  • Field ऑब्जेक्ट और फ़ील्ड टाइप
  • सलेक्शन Choice और सलेक्शन चॉइस Properties

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

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

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

कैटगरी ब्यौरा
Createऑब्जेक्ट जोड़ना.
Updateकिसी ऑब्जेक्ट की कुछ प्रॉपर्टी अपडेट करना.
Enableऑब्जेक्ट चालू करना.
Disableऑब्जेक्ट बंद करना.
Deleteऑब्जेक्ट हटाना.

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

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

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

Request ऑब्जेक्ट
लेबल की प्रॉपर्टी
Update UpdateLabelPropertiesRequest
फ़ील्ड
Create CreateFieldRequest
Update UpdateFieldPropertiesRequest
UpdateFieldTypeRequest
Enable EnableFieldRequest
Disable DisableFieldRequest
Delete DeleteFieldRequest
सलेक्शन चॉइस
Create CreateSelectionChoiceRequest
Update UpdateSelectionChoicePropertiesRequest
Enable EnableSelectionChoiceRequest
Disable DisableSelectionChoiceRequest
Delete DeleteSelectionChoiceRequest

फ़ील्ड मास्क

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

उदाहरण

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

आपको यह भी बताना होगा:

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

  • एक Request जिसमें लेबल पर लागू किए जाने वाले अपडेट की जानकारी दी गई हो.

  • Properties ऑब्जेक्ट के ज़रिए, लेबल का title.

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

  • एक labels संसाधन, जो लेबल को दिखाता है. इसमें एक name और एक idहोता है, जो लेबल के लिए ग्लोबल तौर पर यूनीक आइडेंटिफ़ायर होता है.

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

कोड का यह नमूना दिखाता है कि सही लेबल को अपडेट करने के लिए, उसके id का इस्तेमाल कैसे किया जाता है:

Python

body = {
    'useAdminAccess': True,
    'requests': [
        {
            'updateLabel': {
                'properties': {
                    'title': 'TITLE'
                },
                'updateMask': 'title'
            }
        },
        {
            'createField': {
                'field': {
                    'properties': {
                        'displayName': 'DISPLAY_NAME'
                    },
                    'textOptions': {}
                }
            }
        }
    ],
    'view': 'LABEL_VIEW_FULL'
}

response = service.labels().delta(
    body=body,
    name='labels/ID'
).execute()

Node.js

var body = {
  'useAdminAccess': true,
  'requests': [
    {
      'updateLabel': {
        'properties': {
          'title': 'TITLE'
        },
        'updateMask': 'title'
      }
    },
    {
      'createField': {
        'field': {
          'properties': {
            'displayName': 'DISPLAY_NAME'
          },
          'textOptions': {}
        }
      }
    }
  ],
  'view': 'LABEL_VIEW_FULL'
};

service.labels.delta({
  name: 'labels/ID',
  requestBody: body
}, (err, res) => {
  if (err) return console.error('The API returned an error: ' + err);
  console.log(res);
});

इनकी जगह ये डालें:

  • TITLE: लेबल का टाइटल.
  • DISPLAY_NAME: फ़ील्ड का डिसप्ले नाम.
  • ID: लेबल का आईडी.

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