עדכון תווית

אפשר לעדכן תווית אחת על ידי החלת קבוצה של בקשות עדכון, וכתוצאה מכך טיוטה חדשה. לדוגמה, אפשר לעדכן תווית קיימת property (התווית ) או להוסיף Field לתווית.

עדכון התווית משמש כעדכון בכמות גדולה כאשר השיטה מתעדת רשימת עדכון Request אובייקטים. הוא מבצע עדכונים בהתאם לאותו הסדר שצוין בבקשה באצווה. עדכונים באצווה מוחלים באופן אטומי. כלומר, אם בקשה כלשהי אצווה לא הצליחה, אז העדכון כולו נכשל ואף אחד המערכת תחיל את השינויים (שעשויים להיות תלויים). התווית לא משתנה.

אם העדכון יסתיים בהצלחה, יש לפרסם את גרסת הטיוטה שנוצרת לפני שניתן יהיה להשתמש בשינויים עם פריט כלשהו ב-Drive.

עדכון אובייקטים של תוויות

תווית כוללת עוד סוגים רבים של אובייקטים שאפשר לעדכן, כמו:

  • מאפייני תווית
  • שדות וסוגי שדות
  • אפשרויות בחירה ומאפייני בחירה

אלה כמה מהאובייקטים הרבים ששולטים במראה ובתפעול של תווית.

קטגוריות פעילות

הפעולות הבאות שנתמכות על ידי השיטה labels.delta יכולה להיות יקובצו לקטגוריות הרחבות הבאות:

קטגוריה תיאור
יצירההוספת אובייקטים.
עדכוןעדכון מאפיינים מסוימים של אובייקט.
הפעלההפעלת אובייקטים.
השבתההשבתת אובייקטים.
מחיקההסרת אובייקטים.

הקטגוריות האלה משמשות בקטע הבא כדי לתאר את ההתנהגות של פעולות ספציפיות.

בקשות עדכון

השיטה labels.delta פועלת אם תיקח אחד או יותר בקשה לאובייקטים, כל אחד שמציין סוג מסוים של בקשה לביצוע. יש הרבה דרכים שונות סוגים שונים של בקשות. כאן מופיע פירוט של סוגי הבקשות, המקובצים לפי קטגוריות שונות.

סוג הבקשה
מאפייני תוויות
עדכון UpdateLabelPropertiesRequest
שדה
יצירה CreateFieldRequest
עדכון UpdateFieldPropertiesRequest
UpdateFieldTypeRequest
הפעלה EnableFieldRequest
השבתה DisableFieldRequest
מחיקה DeleteFieldRequest
בחירת אפשרות
יצירה CreateSelectionChoiceRequest
עדכון UpdateSelectionChoicePropertiesRequest
הפעלה EnableSelectionChoiceRequest
השבתה DisableSelectionChoiceRequest
מחיקה DeleteSelectionChoiceRequest

מסכות שדה

חלק גדול מנתוני ה'עדכון' וגם 'השבתה' בקשות מסוג טקסט מחייבות FieldMask זוהי רשימת שדות מופרדת בפסיקים של שדות שברצונך לעדכן ושאר השדות ללא שינוי. המסכה נדרשת כדי לוודא רק את השדות שרוצים לערוך עודכנו. עליך לציין לפחות שדה אחד.

דוגמה

כדי לעדכן תווית, משתמשים ב delta אוסף labels.

צריך גם לציין:

  • useAdminAccess הוא true כדי להשתמש בפרטי הכניסה של האדמין. השרת מאמת שהמשתמש הוא אדמין של התווית לפני שהוא מאפשר גישה.

  • Request מציין את העדכונים החלים בתווית.

  • תווית title דרך property.

  • אחד או יותר Field.

  • משאב תווית שמייצג כל תווית. הוא מכיל את המשאב Name ו-ID, הוא מזהה ייחודי גלובלי של התווית.

  • LabelView הוא LABEL_VIEW_FULL כדי להגדיר את תצוגת המשאבים שהוחלה על תגובות לתוויות. הפונקציה LABEL_VIEW_FULL תחזיר את כל השדות האפשריים.

בדוגמה הזו נשתמש ב-ID כדי לעדכן את התווית הנכונה.

Python

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()

Node.js

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);
});

התווית, השדה או הבחירה מעודכנים, מזהה הגרסה של התווית גדל, והתווית נשמרת במסד נתונים כתווית טיוטה. לתווית יש את State מתוך PUBLISHED עם hasUnpublishedChanges=true כלומר יש שינויים בטיוטות, אבל הם לא זמינים למשתמשים. התווית המעודכנת צריכה להיות PUBLISHED לפני השינויים הופכים לגלויים למשתמשים. אפשר לקרוא מידע נוסף במאמר בנושא תווית במחזור החיים.