Add 'quotaUser' to google cal API requests

This commit is contained in:
NovaFox161
2021-03-17 18:34:25 -05:00
parent 786b00e2b5
commit ecf7aef24f
4 changed files with 43 additions and 34 deletions

View File

@@ -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(),

View File

@@ -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());

View File

@@ -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()))

View File

@@ -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 ||