mirror of
https://github.com/DreamExposure/DisCal-Discord-Bot.git
synced 2026-02-11 05:58:26 -06:00
Add 'quotaUser' to google cal API requests
This commit is contained in:
@@ -2,7 +2,8 @@ package org.dreamexposure.discal.client.calendar;
|
||||
|
||||
import com.google.api.services.calendar.model.AclRule;
|
||||
import com.google.api.services.calendar.model.Calendar;
|
||||
|
||||
import discord4j.common.util.Snowflake;
|
||||
import discord4j.core.event.domain.message.MessageCreateEvent;
|
||||
import org.dreamexposure.discal.client.message.CalendarMessageFormatter;
|
||||
import org.dreamexposure.discal.client.message.Messages;
|
||||
import org.dreamexposure.discal.core.calendar.CalendarAuth;
|
||||
@@ -13,15 +14,12 @@ import org.dreamexposure.discal.core.object.calendar.CalendarData;
|
||||
import org.dreamexposure.discal.core.object.calendar.PreCalendar;
|
||||
import org.dreamexposure.discal.core.wrapper.google.AclRuleWrapper;
|
||||
import org.dreamexposure.discal.core.wrapper.google.CalendarWrapper;
|
||||
import reactor.core.publisher.Mono;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
|
||||
import discord4j.common.util.Snowflake;
|
||||
import discord4j.core.event.domain.message.MessageCreateEvent;
|
||||
import reactor.core.publisher.Mono;
|
||||
|
||||
/**
|
||||
* Created by Nova Fox on 1/4/2017.
|
||||
* Website: www.cloudcraftgaming.com
|
||||
@@ -129,7 +127,7 @@ public class CalendarCreator {
|
||||
final int credId = new Random().nextInt(CalendarAuth.credentialsCount());
|
||||
|
||||
if (!pre.getEditing()) {
|
||||
return CalendarWrapper.createCalendar(calendar, credId)
|
||||
return CalendarWrapper.createCalendar(calendar, credId, settings.getGuildID())
|
||||
.flatMap(confirmed -> {
|
||||
final CalendarData data = new CalendarData(
|
||||
settings.getGuildID(),
|
||||
|
||||
@@ -1,19 +1,18 @@
|
||||
package org.dreamexposure.discal.core.wrapper.google;
|
||||
|
||||
import com.google.api.services.calendar.model.AclRule;
|
||||
|
||||
import org.dreamexposure.discal.core.calendar.CalendarAuth;
|
||||
import org.dreamexposure.discal.core.object.calendar.CalendarData;
|
||||
|
||||
import reactor.core.publisher.Mono;
|
||||
import reactor.core.scheduler.Schedulers;
|
||||
|
||||
public class AclRuleWrapper {
|
||||
public static Mono<AclRule> insertRule(final AclRule rule, final CalendarData data) {
|
||||
public static Mono<AclRule> insertRule(AclRule rule, CalendarData data) {
|
||||
return CalendarAuth.getCalendarService(data)
|
||||
.flatMap(service -> Mono.fromCallable(() ->
|
||||
service.acl()
|
||||
.insert(data.getCalendarId(), rule)
|
||||
.setQuotaUser(data.getGuildId().asString())
|
||||
.execute()
|
||||
).subscribeOn(Schedulers.boundedElastic()))
|
||||
.onErrorResume(e -> Mono.empty());
|
||||
|
||||
@@ -2,51 +2,53 @@ package org.dreamexposure.discal.core.wrapper.google;
|
||||
|
||||
import com.google.api.services.calendar.model.Calendar;
|
||||
import com.google.api.services.calendar.model.CalendarListEntry;
|
||||
|
||||
import discord4j.common.util.Snowflake;
|
||||
import org.dreamexposure.discal.core.calendar.CalendarAuth;
|
||||
import org.dreamexposure.discal.core.logger.LogFeed;
|
||||
import org.dreamexposure.discal.core.logger.object.LogObject;
|
||||
import org.dreamexposure.discal.core.object.calendar.CalendarData;
|
||||
import reactor.core.publisher.Mono;
|
||||
import reactor.core.scheduler.Schedulers;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
|
||||
import reactor.core.publisher.Mono;
|
||||
import reactor.core.scheduler.Schedulers;
|
||||
|
||||
public class CalendarWrapper {
|
||||
public static Mono<Calendar> createCalendar(final Calendar calendar, final int credId) {
|
||||
public static Mono<Calendar> createCalendar(Calendar calendar, int credId, Snowflake guildId) {
|
||||
return CalendarAuth.getCalendarService(credId)
|
||||
.flatMap(service -> Mono.fromCallable(() ->
|
||||
service.calendars()
|
||||
.insert(calendar)
|
||||
.setQuotaUser(guildId.asString())
|
||||
.execute()
|
||||
).subscribeOn(Schedulers.boundedElastic()))
|
||||
.onErrorResume(e -> Mono.empty());
|
||||
}
|
||||
|
||||
public static Mono<Calendar> updateCalendar(final Calendar calendar, final CalendarData calData) {
|
||||
public static Mono<Calendar> updateCalendar(Calendar calendar, CalendarData calData) {
|
||||
return CalendarAuth.getCalendarService(calData)
|
||||
.flatMap(service -> Mono.fromCallable(() ->
|
||||
service.calendars()
|
||||
.update(calendar.getId(), calendar)
|
||||
.setQuotaUser(calData.getGuildId().asString())
|
||||
.execute()
|
||||
).subscribeOn(Schedulers.boundedElastic()))
|
||||
.onErrorResume(e -> Mono.empty());
|
||||
}
|
||||
|
||||
public static Mono<Calendar> getCalendar(final CalendarData data) {
|
||||
public static Mono<Calendar> getCalendar(CalendarData data) {
|
||||
return CalendarAuth.getCalendarService(data)
|
||||
.flatMap(service -> Mono.fromCallable(() ->
|
||||
service.calendars()
|
||||
.get(data.getCalendarAddress())
|
||||
.setQuotaUser(data.getGuildId().asString())
|
||||
.execute()
|
||||
).subscribeOn(Schedulers.boundedElastic()))
|
||||
.doOnError(e -> LogFeed.log(LogObject.forException("Get Cal Failure", e, CalendarWrapper.class)))
|
||||
.onErrorResume(e -> Mono.empty());
|
||||
}
|
||||
|
||||
public static Mono<Void> deleteCalendar(final CalendarData data) {
|
||||
public static Mono<Void> deleteCalendar(CalendarData data) {
|
||||
return Mono.just(data)
|
||||
.filter(cd -> !cd.getExternal())
|
||||
.filter(cd -> !"primary".equalsIgnoreCase(cd.getCalendarAddress()))
|
||||
@@ -54,6 +56,7 @@ public class CalendarWrapper {
|
||||
CalendarAuth.getCalendarService(data).flatMap(service ->
|
||||
Mono.fromCallable(() -> service.calendars()
|
||||
.delete(cd.getCalendarAddress())
|
||||
.setQuotaUser(data.getGuildId().asString())
|
||||
.execute()
|
||||
).subscribeOn(Schedulers.boundedElastic())
|
||||
)
|
||||
@@ -68,6 +71,7 @@ public class CalendarWrapper {
|
||||
service.calendarList()
|
||||
.list()
|
||||
.setMinAccessRole("writer")
|
||||
.setQuotaUser(calData.getGuildId().asString())
|
||||
.execute()
|
||||
.getItems()
|
||||
).subscribeOn(Schedulers.boundedElastic()))
|
||||
|
||||
@@ -20,11 +20,12 @@ import java.util.List;
|
||||
|
||||
@SuppressWarnings("DuplicatedCode")
|
||||
public class EventWrapper {
|
||||
public static Mono<Event> createEvent(final CalendarData data, final Event event) {
|
||||
public static Mono<Event> createEvent(CalendarData data, Event event) {
|
||||
return CalendarAuth.getCalendarService(data).flatMap(service ->
|
||||
Mono.fromCallable(() ->
|
||||
service.events()
|
||||
.insert(data.getCalendarId(), event)
|
||||
.setQuotaUser(data.getGuildId().asString())
|
||||
.execute()
|
||||
).subscribeOn(Schedulers.boundedElastic())
|
||||
).onErrorResume(GoogleJsonResponseException.class, e -> {
|
||||
@@ -52,11 +53,12 @@ public class EventWrapper {
|
||||
).onErrorResume(e -> Mono.empty());
|
||||
}
|
||||
|
||||
public static Mono<Event> updateEvent(final CalendarData data, final Event event) {
|
||||
public static Mono<Event> updateEvent(CalendarData data, Event event) {
|
||||
return CalendarAuth.getCalendarService(data).flatMap(service ->
|
||||
Mono.fromCallable(() ->
|
||||
service.events()
|
||||
.update(data.getCalendarId(), event.getId(), event)
|
||||
.setQuotaUser(data.getGuildId().asString())
|
||||
.execute()
|
||||
).subscribeOn(Schedulers.boundedElastic())
|
||||
).onErrorResume(GoogleJsonResponseException.class, e -> {
|
||||
@@ -83,18 +85,18 @@ public class EventWrapper {
|
||||
).onErrorResume(e -> Mono.empty());
|
||||
}
|
||||
|
||||
public static Mono<Event> getEvent(final CalendarData data, final String id) {
|
||||
public static Mono<Event> getEvent(CalendarData data, String id) {
|
||||
return CalendarAuth.getCalendarService(data).flatMap(service ->
|
||||
Mono.fromCallable(() ->
|
||||
service.events()
|
||||
.get(data.getCalendarAddress(), id)
|
||||
.setQuotaUser(data.getGuildId().asString())
|
||||
.execute()
|
||||
).subscribeOn(Schedulers.boundedElastic())
|
||||
).onErrorResume(e -> Mono.empty()); //Can ignore this, the event just doesn't exist.
|
||||
}
|
||||
|
||||
public static Mono<List<Event>> getEvents(final CalendarData data, final int amount,
|
||||
final long start) {
|
||||
public static Mono<List<Event>> getEvents(CalendarData data, int amount, long start) {
|
||||
return CalendarAuth.getCalendarService(data).flatMap(service ->
|
||||
Mono.fromCallable(() ->
|
||||
service.events().list(data.getCalendarId())
|
||||
@@ -103,13 +105,13 @@ public class EventWrapper {
|
||||
.setOrderBy("startTime")
|
||||
.setSingleEvents(true)
|
||||
.setShowDeleted(false)
|
||||
.setQuotaUser(data.getGuildId().asString())
|
||||
.execute().getItems()
|
||||
).subscribeOn(Schedulers.boundedElastic())
|
||||
).onErrorResume(e -> Mono.empty());
|
||||
}
|
||||
|
||||
public static Mono<List<Event>> getEvents(final CalendarData data, final Calendar service, final int amount,
|
||||
final long start) {
|
||||
public static Mono<List<Event>> getEvents(CalendarData data, Calendar service, int amount, long start) {
|
||||
return Mono.fromCallable(() ->
|
||||
service.events().list(data.getCalendarId())
|
||||
.setMaxResults(amount)
|
||||
@@ -117,6 +119,7 @@ public class EventWrapper {
|
||||
.setOrderBy("startTime")
|
||||
.setSingleEvents(true)
|
||||
.setShowDeleted(false)
|
||||
.setQuotaUser(data.getGuildId().asString())
|
||||
.execute().getItems()
|
||||
).subscribeOn(Schedulers.boundedElastic())
|
||||
.onErrorResume(e -> Mono.empty());
|
||||
@@ -132,13 +135,13 @@ public class EventWrapper {
|
||||
.setOrderBy("startTime")
|
||||
.setSingleEvents(true)
|
||||
.setShowDeleted(false)
|
||||
.setQuotaUser(data.getGuildId().asString())
|
||||
.execute().getItems()
|
||||
).subscribeOn(Schedulers.boundedElastic())
|
||||
).onErrorResume(e -> Mono.empty());
|
||||
}
|
||||
|
||||
public static Mono<List<Event>> getEvents(final CalendarData data, final long start,
|
||||
final long end) {
|
||||
public static Mono<List<Event>> getEvents(CalendarData data, long start, long end) {
|
||||
return CalendarAuth.getCalendarService(data).flatMap(service ->
|
||||
Mono.fromCallable(() ->
|
||||
service.events().list(data.getCalendarId())
|
||||
@@ -147,21 +150,23 @@ public class EventWrapper {
|
||||
.setOrderBy("startTime")
|
||||
.setSingleEvents(true)
|
||||
.setShowDeleted(false)
|
||||
.setQuotaUser(data.getGuildId().asString())
|
||||
.execute().getItems()
|
||||
).subscribeOn(Schedulers.boundedElastic())
|
||||
).onErrorResume(e -> Mono.empty());
|
||||
}
|
||||
|
||||
public static Mono<Boolean> deleteEvent(final CalendarData data, final String id) {
|
||||
public static Mono<Boolean> deleteEvent(CalendarData data, String id) {
|
||||
return CalendarAuth.getCalendarService(data).flatMap(service ->
|
||||
Mono.fromCallable(() -> {
|
||||
HttpResponse response = service.events()
|
||||
.delete(data.getCalendarAddress(), id)
|
||||
.executeUnparsed();
|
||||
HttpResponse response = service.events()
|
||||
.delete(data.getCalendarAddress(), id)
|
||||
.setQuotaUser(data.getGuildId().asString())
|
||||
.executeUnparsed();
|
||||
|
||||
//Log error code if one happened
|
||||
if (response.getStatusCode() != HttpStatusCodes.STATUS_CODE_OK) {
|
||||
LogFeed.log(LogObject.forDebug(
|
||||
//Log error code if one happened
|
||||
if (response.getStatusCode() != HttpStatusCodes.STATUS_CODE_OK) {
|
||||
LogFeed.log(LogObject.forDebug(
|
||||
"Event Delete Error | " + response.getStatusCode() + " | " + response.getStatusMessage()
|
||||
));
|
||||
}
|
||||
@@ -195,7 +200,10 @@ public class EventWrapper {
|
||||
private static Mono<Boolean> correctAssignedCredentialId(CalendarData data) {
|
||||
return Flux.range(0, CalendarAuth.credentialsCount()).flatMap(i ->
|
||||
CalendarAuth.getCalendarService(i).flatMap(service -> Mono.fromCallable(() ->
|
||||
service.calendarList().get(data.getCalendarId()).execute()
|
||||
service.calendarList()
|
||||
.get(data.getCalendarId())
|
||||
.setQuotaUser(data.getGuildId().asString())
|
||||
.execute()
|
||||
).subscribeOn(Schedulers.boundedElastic())
|
||||
.onErrorResume(GoogleJsonResponseException.class, e -> {
|
||||
if (e.getStatusCode() == GlobalConst.STATUS_NOT_FOUND ||
|
||||
|
||||
Reference in New Issue
Block a user