বিষয়গুলি পরিচালনা করুন

একটি Topic হল CourseWork এবং CourseWorkMaterial স্ট্রিম আইটেমগুলিকে একটি কোর্সের মধ্যে গ্রুপ করার জন্য একটি লেবেল৷ একটি Topic সাধারণত এই আইটেমগুলিকে সাদৃশ্য দ্বারা শ্রেণীবদ্ধ করতে ব্যবহৃত হয়, যেমন আইটেমগুলি বরাদ্দ করা সপ্তাহ বা তাদের বিষয়। ব্যবহারকারীরা ক্লাসরুম UI-এর ক্লাসওয়ার্ক ভিউতে স্ট্রিম আইটেমগুলি দৃশ্যত সংগঠিত এবং ফিল্টার করতে পারেন।

প্রতিটি Topic সার্ভার দ্বারা নির্ধারিত একটি অনন্য ID দ্বারা চিহ্নিত করা হয়। Topic সম্পদ এছাড়াও নিম্নলিখিত রয়েছে:

  • name : ক্লাসরুম UI-তে প্রদর্শিত ডিসপ্লে নাম
  • updateTime : যে সময় Topic শেষবার আপডেট করা হয়েছিল
  • courseId : Topic সাথে সংশ্লিষ্ট কোর্সের আইডি

একটি বিষয় তৈরি করুন

আপনি topics.create() পদ্ধতি ব্যবহার করে একটি কোর্সে একটি নতুন Topic তৈরি করতে পারেন, যেমনটি নিম্নলিখিত নমুনায় দেখানো হয়েছে:

জাভা

classroom/snippets/src/main/java/CreateTopic.java
Topic topic = null;
try {
  // Create the new Topic.
  Topic content = new Topic().setName("Semester 1");
  topic = service.courses().topics().create(courseId, content).execute();
  System.out.println("Topic id: " + topic.getTopicId() + "\n" + "Course id: " + courseId);
} catch (GoogleJsonResponseException e) {
  // TODO (developer) - handle error appropriately
  GoogleJsonError error = e.getDetails();
  if (error.getCode() == 404) {
    System.out.printf("The courseId does not exist: %s.\n", courseId);
  } else {
    throw e;
  }
} catch (Exception e) {
  throw e;
}
return topic;

পাইথন

topic = {
    "name": 'Example Topic'
}
response = service.courses().topics().create(
  courseId=<course ID or alias>,
  body=topic).execute()
print('Topic created: ', response['name'])

name ক্ষেত্রটি সর্বদা প্রয়োজন এবং অবশ্যই একটি অ-খালি স্ট্রিং হতে হবে। অন্য সব ক্ষেত্র ঐচ্ছিক.

বিষয় বিবরণ পুনরুদ্ধার করুন

আপনি topics.get() পদ্ধতির মাধ্যমে আইডি দ্বারা একটি নির্দিষ্ট Topic পুনরুদ্ধার করতে পারেন, যেমনটি নিম্নলিখিত নমুনায় দেখানো হয়েছে:

জাভা

classroom/snippets/src/main/java/GetTopic.java
Topic topic = null;
try {
  // Get the topic.
  topic = service.courses().topics().get(courseId, topicId).execute();
  System.out.printf("Topic '%s' found.\n", topic.getName());
} catch (GoogleJsonResponseException e) {
  // TODO (developer) - handle error appropriately
  GoogleJsonError error = e.getDetails();
  if (error.getCode() == 404) {
    System.out.printf("The courseId or topicId does not exist: %s, %s.\n", courseId, topicId);
  }
  throw e;
} catch (Exception e) {
  throw e;
}
return topic;

পাইথন

response = service.courses().topics().get(
  courseId=<course ID or alias>,
  id=<topic ID>).execute()
print('{0} ({1})'.format(response['name'], response['topicId']))

একটি কোর্সের সমস্ত Topic পুনরুদ্ধার করতে topics.list() পদ্ধতিটি ব্যবহার করুন, যেমনটি নিম্নলিখিত নমুনায় দেখানো হয়েছে:

জাভা

classroom/snippets/src/main/java/ListTopics.java
List<Topic> topics = new ArrayList<>();
String pageToken = null;

try {
  do {
    ListTopicResponse response =
        service
            .courses()
            .topics()
            .list(courseId)
            .setPageSize(100)
            .setPageToken(pageToken)
            .execute();

    /* Ensure that the response is not null before retrieving data from it to avoid errors. */
    if (response.getTopic() != null) {
      topics.addAll(response.getTopic());
      pageToken = response.getNextPageToken();
    }
  } while (pageToken != null);

  if (topics.isEmpty()) {
    System.out.println("No topics found.");
  } else {
    for (Topic topic : topics) {
      System.out.printf("%s (%s)\n", topic.getName(), topic.getTopicId());
    }
  }
} catch (GoogleJsonResponseException e) {
  // TODO (developer) - handle error appropriately
  GoogleJsonError error = e.getDetails();
  if (error.getCode() == 404) {
    System.out.printf("The courseId does not exist: %s.\n", courseId);
  } else {
    throw e;
  }
} catch (Exception e) {
  throw e;
}
return topics;

পাইথন

topics = []
page_token = None
while True:
    response = service.courses().topics().list(
        pageToken=page_token,
        pageSize=30,
        courseId=<course ID or alias>).execute()
    topics.extend(response.get('topic', []))
    page_token = response.get('nextPageToken', None)
    if not page_token:
        break
if not topics:
    print('No topics found.')
else:
    print('Topics:')
    for topic in topics:
        print('{0} ({1})'.format(topic['name'], topic['topicId']))

একটি বিষয় আপডেট করুন

আপনি topics.patch() পদ্ধতির সাথে একটি বিদ্যমান Topic name আপডেট করতে পারেন, যেমনটি নিম্নলিখিত নমুনায় দেখানো হয়েছে:

জাভা

classroom/snippets/src/main/java/UpdateTopic.java
Topic topic = null;
try {
  // Retrieve the topic to update.
  Topic topicToUpdate = service.courses().topics().get(courseId, topicId).execute();

  // Update the name field for the topic retrieved.
  topicToUpdate.setName("Semester 2");

  /* Call the patch endpoint and set the updateMask query parameter to the field that needs to
  be updated. */
  topic =
      service
          .courses()
          .topics()
          .patch(courseId, topicId, topicToUpdate)
          .set("updateMask", "name")
          .execute();

  /* Prints the updated topic. */
  System.out.printf("Topic '%s' updated.\n", topic.getName());
} catch (GoogleJsonResponseException e) {
  // TODO(developer) - handle error appropriately
  GoogleJsonError error = e.getDetails();
  if (error.getCode() == 404) {
    System.out.printf("The courseId or topicId does not exist: %s, %s.\n", courseId, topicId);
  } else {
    throw e;
  }
} catch (Exception e) {
  throw e;
}
return topic;

পাইথন

topic = {
  "name": "New Topic Name"
}
response = service.courses().topics().patch(
  courseId=<course ID or alias>,
  id=<topic ID>,
  updateMask="name",
  body=topic).execute()
print('{0} ({1})'.format(response['name'], response['topicId']))

Topic id এবং updateTime ক্ষেত্রগুলি সার্ভার-জেনারেট করা হয় এবং API এর সাথে আপডেট করা যায় না।

একটি বিষয় মুছুন

আপনি topics.delete() পদ্ধতির মাধ্যমে একটি বিদ্যমান Topic মুছে ফেলতে পারেন, যেমনটি নিম্নলিখিত নমুনায় দেখানো হয়েছে:

জাভা

classroom/snippets/src/main/java/DeleteTopic.java
try {
  service.courses().topics().delete(courseId, topicId).execute();
} catch (GoogleJsonResponseException e) {
  // TODO(developer) - handle error appropriately
  throw e;
} catch (Exception e) {
  throw e;
}