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

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

প্রতিটি Topic সার্ভার কর্তৃক নির্ধারিত একটি অনন্য আইডি দ্বারা চিহ্নিত করা হয়। 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;
}