001package com.plivo.examples.multipartycall; 002 003import com.plivo.api.Plivo; 004import com.plivo.api.exceptions.PlivoRestException; 005import com.plivo.api.exceptions.PlivoValidationException; 006import com.plivo.api.models.base.ListResponse; 007import com.plivo.api.models.multipartycall.MultiPartyCall; 008import com.plivo.api.models.multipartycall.MultiPartyCallUtils; 009import com.plivo.api.util.PropertyFilter; 010 011import java.io.IOException; 012import java.text.SimpleDateFormat; 013import java.time.OffsetDateTime; 014import java.time.format.DateTimeFormatter; 015import java.util.Date; 016 017public class ListMPC { 018 019 private static boolean checkTime(String timeString) { 020 return OffsetDateTime.parse(timeString, DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssXXXXX")).isBefore(OffsetDateTime.now().minusHours(1)); 021 } 022 023 public static void main(String[] args) throws IOException, PlivoRestException, PlivoValidationException, NoSuchMethodException { 024 Plivo.init("<YOUR-AUTH-ID>", "<YOUR-AUTH-TOKEN>"); 025 026 // Fetch all MultiPartyCalls for an account 027 ListResponse<MultiPartyCall> allMPC = MultiPartyCall.lister().list(); 028 System.out.println(allMPC.getMeta().getTotalCount()); 029 030 // Fetch only ended MultiPartyCalls for an account. Other possible status are (initialized, active) 031 ListResponse<MultiPartyCall> endedMPC = MultiPartyCall.lister().status(MultiPartyCallUtils.ended).list(); 032 if (endedMPC.getObjects().stream().allMatch(mpc -> mpc.getStatus().equals(MultiPartyCallUtils.ended))) { 033 System.out.println("fetched only ended MPC"); 034 } else { 035 System.out.println("failed to fetch only ended MPC"); 036 } 037 038 ListResponse<MultiPartyCall> previousHourMPC = MultiPartyCall.lister(). 039 endTime(new PropertyFilter<String>().lessThan(new SimpleDateFormat("yyyy-MM-dd hh:mm"). 040 format(new Date(System.currentTimeMillis() - 3600 * 1000)))).list(); 041 if (previousHourMPC.getObjects().stream().allMatch(mpc -> ListMPC.checkTime(mpc.getEndTime()))) { 042 System.out.println("fetched only MPC older than 1 hour"); 043 } else { 044 System.out.println("failed to fetch MPC older than 1 hour"); 045 } 046 } 047}