আপনি একাধিক আপডেট অনুরোধ প্রয়োগ করে একটি নতুন খসড়া সংস্করণ তৈরি করার মাধ্যমে একটিমাত্র লেবেল আপডেট করতে পারেন। উদাহরণস্বরূপ, আপনি একটি বিদ্যমান লেবেল প্রপার্টি (লেবেলের বিবরণ) আপডেট করতে পারেন অথবা লেবেলটিতে একটি নতুন Field যোগ করতে পারেন।
লেবেল আপডেট একটি ব্যাচ আপডেট হিসেবে কাজ করে, কারণ এই মেথডটি আপডেট Request অবজেক্টের একটি তালিকা গ্রহণ করে। এটি ব্যাচ রিকোয়েস্টে নির্দিষ্ট করা একই ক্রম অনুসারে আপডেটগুলো সম্পন্ন করে। ব্যাচ আপডেটের পরিবর্তনগুলো অ্যাটমিকভাবে প্রয়োগ করা হয়। অর্থাৎ, যদি ব্যাচের কোনো একটি রিকোয়েস্ট অসফল হয়, তাহলে পুরো আপডেটটিই অসফল হয়ে যায় এবং এর ওপর নির্ভরশীল কোনো পরিবর্তনই প্রয়োগ করা হয় না। লেবেলটি অপরিবর্তিত থাকে।
আপডেটটি সফল হলে, যেকোনো ড্রাইভ আইটেমের সাথে পরিবর্তনগুলো ব্যবহার করার আগে চূড়ান্ত খসড়া সংস্করণটি অবশ্যই প্রকাশ করতে হবে।
লেবেল অবজেক্ট আপডেট করুন
একটি লেবেলে আরও অনেক ধরনের অবজেক্ট অন্তর্ভুক্ত থাকে যা আপডেট করা যায়, যেমন:
- লেবেল বৈশিষ্ট্য
- ক্ষেত্র এবং ক্ষেত্রের প্রকারভেদ
- নির্বাচনের বিকল্প এবং নির্বাচনের বিকল্পের বৈশিষ্ট্য
এগুলো হলো এমন কয়েকটি অবজেক্ট যা একটি লেবেলের চেহারা ও কার্যকারিতা নিয়ন্ত্রণ করে।
অপারেশনের বিভাগগুলি
labels.delta মেথড দ্বারা সমর্থিত অপারেশনগুলোকে নিম্নলিখিত বিস্তৃত বিভাগগুলিতে ভাগ করা যেতে পারে:
| বিভাগ | বর্ণনা |
|---|---|
| তৈরি করুন | বস্তু যোগ করুন। |
| আপডেট | কোনো অবজেক্টের নির্দিষ্ট কিছু বৈশিষ্ট্য হালনাগাদ করুন। |
| সক্ষম করুন | অবজেক্টগুলো সক্রিয় করুন। |
| অক্ষম করুন | বস্তুসমূহ নিষ্ক্রিয় করুন। |
| মুছে ফেলুন | বস্তুগুলো সরান। |
পরবর্তী অনুচ্ছেদে নির্দিষ্ট অপারেশনগুলোর আচরণ বর্ণনা করতে এই বিভাগগুলো ব্যবহৃত হয়।
আপডেট অনুরোধ
labels.delta মেথডটি এক বা একাধিক Request অবজেক্ট গ্রহণ করে কাজ করে, যার প্রতিটি সম্পাদন করার জন্য একটি নির্দিষ্ট ধরনের অনুরোধ উল্লেখ করে। বিভিন্ন ধরনের অনুরোধ রয়েছে। নিচে অনুরোধের প্রকারভেদগুলো বিভিন্ন শ্রেণীতে ভাগ করে একটি বিশদ বিবরণ দেওয়া হলো।
| অনুরোধের ধরণ | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| লেবেল বৈশিষ্ট্য |
| ||||||||||
| মাঠ |
| ||||||||||
| নির্বাচন পছন্দ |
| ||||||||||
মাঠের মাস্ক
"আপডেট" এবং "ডিজেবল" ধরনের অনেক অনুরোধের জন্য একটি FieldMask প্রয়োজন হয়। এটি হলো কমা দ্বারা বিভক্ত এমন ফিল্ডগুলোর একটি তালিকা, যেগুলো আপনি অন্য ফিল্ডগুলো অপরিবর্তিত রেখে আপডেট করতে চান। শুধুমাত্র আপনার কাঙ্ক্ষিত ফিল্ডগুলোই যেন আপডেট হয়, তা নিশ্চিত করার জন্য মাস্কটি আবশ্যক। আপনাকে অবশ্যই অন্তত একটি ফিল্ড নির্দিষ্ট করতে হবে।
উদাহরণ
কোনো লেবেল আপডেট করতে, labels কালেকশনের delta মেথডটি ব্যবহার করুন।
আপনাকে আরও নির্দিষ্ট করে বলতে হবে:
ব্যবহারকারীর অ্যাডমিনিস্ট্রেটর ক্রেডেনশিয়াল ব্যবহার করার জন্য
useAdminAccesstrueহয়। অ্যাক্সেস দেওয়ার আগে সার্ভার যাচাই করে নেয় যে ব্যবহারকারীটি ওই লেবেলের জন্য অ্যাডমিন কি না।একটি
Requestযা লেবেলের জন্য প্রযোজ্য হালনাগাদগুলো নির্দিষ্ট করে।propertyমেথডের মাধ্যমে একটি লেবেলেরtitle।এক বা একাধিক
Field।একটি লেবেল রিসোর্স যা প্রতিটি লেবেলকে প্রতিনিধিত্ব করে। এতে একটি রিসোর্স
NameএবংIDথাকে, যা লেবেলটির জন্য একটি বিশ্বব্যাপী অনন্য শনাক্তকারী।লেবেল রেসপন্সের ক্ষেত্রে প্রযোজ্য রিসোর্স ভিউ সেট করতে
LabelViewLABEL_VIEW_FULLহিসেবে সেট করা হয়।LABEL_VIEW_FULLসমস্ত সম্ভাব্য ফিল্ড রিটার্ন করে।
এই উদাহরণে সঠিক লেবেলটি আপডেট করার জন্য ID ব্যবহার করা হয়েছে।
পাইথন
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);
});
লেবেল, ফিল্ড বা পছন্দটি আপডেট করা হলে, লেবেলের রিভিশন আইডি এক বৃদ্ধি পায় এবং লেবেলটি একটি ড্রাফট লেবেল হিসেবে ডাটাবেসে সংরক্ষিত হয়। লেবেলটির স্টেট ( State থাকে PUBLISHED এবং hasUnpublishedChanges=true , যার অর্থ হলো এতে ড্রাফট পরিবর্তন রয়েছে, কিন্তু সেগুলো ব্যবহারকারীদের জন্য উপলব্ধ নয়। ব্যবহারকারীদের কাছে পরিবর্তনগুলো দৃশ্যমান হওয়ার আগে আপডেট করা লেবেলটি অবশ্যই PUBLISHED করতে হবে। আরও তথ্যের জন্য, লেবেল লাইফসাইকেল (Label lifecycle ) দেখুন।