upgrade spring, add javadoc, formatting
This commit is contained in:
+126
-194
@@ -60,17 +60,15 @@ public class MembershipManager {
|
||||
* Generate membership ids.
|
||||
*/
|
||||
public void generateMembershipIds() {
|
||||
String membershipItemId = systemPropertyManager
|
||||
.get(PretixManager.SYSTEM_PROPERTY_PRETIX_MEMBERSHIP_ITEM, "");
|
||||
String membershipItemId = systemPropertyManager.get(PretixManager.SYSTEM_PROPERTY_PRETIX_MEMBERSHIP_ITEM, "");
|
||||
|
||||
int membershipInternalIdQuestion = systemPropertyManager.getInteger(
|
||||
PretixManager.SYSTEM_PROPERTY_PRETIX_MEMBERSHIP_INTERNAL_ID_QUESTION, 0);
|
||||
int membershipInternalIdQuestion = systemPropertyManager
|
||||
.getInteger(PretixManager.SYSTEM_PROPERTY_PRETIX_MEMBERSHIP_INTERNAL_ID_QUESTION, 0);
|
||||
|
||||
int membershipIdQuestion = systemPropertyManager
|
||||
.getInteger(PretixManager.SYSTEM_PROPERTY_PRETIX_MEMBERSHIP_ID_QUESTION, 0);
|
||||
|
||||
if (!StringUtils.hasText(membershipItemId) || membershipInternalIdQuestion == 0
|
||||
|| membershipIdQuestion == 0) {
|
||||
if (!StringUtils.hasText(membershipItemId) || membershipInternalIdQuestion == 0 || membershipIdQuestion == 0) {
|
||||
logger.warn("Required system properties for 'generateMembershipIds' not set!");
|
||||
return;
|
||||
}
|
||||
@@ -81,8 +79,8 @@ public class MembershipManager {
|
||||
queryParams.add("order__status", "p");
|
||||
|
||||
List<JsonObject> orderPositions = fetchAllOrderPositions(
|
||||
String.format("/api/v1/organizers/%s/events/%s/orderpositions/",
|
||||
pretixManager.getOrganizer(), pretixManager.getEvent()),
|
||||
String.format("/api/v1/organizers/%s/events/%s/orderpositions/", pretixManager.getOrganizer(),
|
||||
pretixManager.getEvent()),
|
||||
queryParams, Lists.newArrayList());
|
||||
|
||||
Map<Instant, JsonObject> newMembershipPositions = new TreeMap<Instant, JsonObject>();
|
||||
@@ -106,23 +104,20 @@ public class MembershipManager {
|
||||
}
|
||||
|
||||
if (!hasInternalMembershipId) {
|
||||
newMembershipPositions.put(pretixManager.getLastPaymentDateForOrder(
|
||||
orderPosition.get("order").getAsString()), orderPosition);
|
||||
newMembershipPositions.put(
|
||||
pretixManager.getLastPaymentDateForOrder(orderPosition.get("order").getAsString()),
|
||||
orderPosition);
|
||||
} else {
|
||||
boolean writeMembershipId = true;
|
||||
|
||||
JsonObject membershipIdAnswer = getAnswerObject(orderPosition,
|
||||
membershipIdQuestion);
|
||||
JsonObject membershipIdAnswer = getAnswerObject(orderPosition, membershipIdQuestion);
|
||||
|
||||
if (membershipIdAnswer != null) {
|
||||
int membershipId = Integer.valueOf(membershipIdAnswer.get("answer").getAsInt());
|
||||
if (internalMembershipId == membershipId) {
|
||||
writeMembershipId = false;
|
||||
logger.trace("Order '"
|
||||
+ orderPosition.get("order").getAsString()
|
||||
+ "' already processed, membership id: '"
|
||||
+ membershipId
|
||||
+ "'");
|
||||
logger.trace("Order '" + orderPosition.get("order").getAsString()
|
||||
+ "' already processed, membership id: '" + membershipId + "'");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -140,22 +135,17 @@ public class MembershipManager {
|
||||
JsonObject payload = new JsonObject();
|
||||
payload.add("answers", answers);
|
||||
|
||||
logger.debug("Write membershipId for '"
|
||||
+ orderPosition.get("order").getAsString()
|
||||
+ "': "
|
||||
logger.debug("Write membershipId for '" + orderPosition.get("order").getAsString() + "': "
|
||||
+ internalMembershipId);
|
||||
|
||||
pretixManager.request(
|
||||
String.format("/api/v1/organizers/%s/events/%s/orderpositions/%s/",
|
||||
pretixManager.getOrganizer(), pretixManager.getEvent(),
|
||||
orderPosition.get("id").getAsString()),
|
||||
HttpMethod.PATCH, payload);
|
||||
pretixManager.request(String.format("/api/v1/organizers/%s/events/%s/orderpositions/%s/",
|
||||
pretixManager.getOrganizer(), pretixManager.getEvent(),
|
||||
orderPosition.get("id").getAsString()), HttpMethod.PATCH, payload);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Iterator<Entry<Instant, JsonObject>> iterator = newMembershipPositions.entrySet()
|
||||
.iterator();
|
||||
Iterator<Entry<Instant, JsonObject>> iterator = newMembershipPositions.entrySet().iterator();
|
||||
while (iterator.hasNext()) {
|
||||
Map.Entry<Instant, JsonObject> entry = iterator.next();
|
||||
JsonObject orderPosition = entry.getValue();
|
||||
@@ -182,17 +172,13 @@ public class MembershipManager {
|
||||
|
||||
payload.add("answers", answers);
|
||||
|
||||
logger.debug("Create membershipId for '"
|
||||
+ orderPosition.get("order").getAsString()
|
||||
+ "': "
|
||||
+ nextMembershipId);
|
||||
logger.debug(
|
||||
"Create membershipId for '" + orderPosition.get("order").getAsString() + "': " + nextMembershipId);
|
||||
|
||||
pretixManager
|
||||
.request(
|
||||
String.format("/api/v1/organizers/%s/events/%s/orderpositions/%s/",
|
||||
pretixManager.getOrganizer(), pretixManager.getEvent(),
|
||||
orderPosition.get("id").getAsString()),
|
||||
HttpMethod.PATCH, payload);
|
||||
pretixManager.request(
|
||||
String.format("/api/v1/organizers/%s/events/%s/orderpositions/%s/", pretixManager.getOrganizer(),
|
||||
pretixManager.getEvent(), orderPosition.get("id").getAsString()),
|
||||
HttpMethod.PATCH, payload);
|
||||
|
||||
nextMembershipId++;
|
||||
}
|
||||
@@ -203,17 +189,16 @@ public class MembershipManager {
|
||||
*/
|
||||
public void activeMemberships() {
|
||||
|
||||
String membershipItemId = systemPropertyManager
|
||||
.get(PretixManager.SYSTEM_PROPERTY_PRETIX_MEMBERSHIP_ITEM, "");
|
||||
String membershipItemId = systemPropertyManager.get(PretixManager.SYSTEM_PROPERTY_PRETIX_MEMBERSHIP_ITEM, "");
|
||||
|
||||
String membershipFeeItemId = systemPropertyManager
|
||||
.get(PretixManager.SYSTEM_PROPERTY_PRETIX_MEMBERSHIPFEE_ITEM, "");
|
||||
String membershipFeeItemId = systemPropertyManager.get(PretixManager.SYSTEM_PROPERTY_PRETIX_MEMBERSHIPFEE_ITEM,
|
||||
"");
|
||||
|
||||
int membershipInternalIdQuestion = systemPropertyManager.getInteger(
|
||||
PretixManager.SYSTEM_PROPERTY_PRETIX_MEMBERSHIP_INTERNAL_ID_QUESTION, 0);
|
||||
int membershipInternalIdQuestion = systemPropertyManager
|
||||
.getInteger(PretixManager.SYSTEM_PROPERTY_PRETIX_MEMBERSHIP_INTERNAL_ID_QUESTION, 0);
|
||||
|
||||
int membershipFeeReferenceQuestion = systemPropertyManager.getInteger(
|
||||
PretixManager.SYSTEM_PROPERTY_PRETIX_MEMBERSHIPFEE_REFERENCE_QUESTION, 0);
|
||||
int membershipFeeReferenceQuestion = systemPropertyManager
|
||||
.getInteger(PretixManager.SYSTEM_PROPERTY_PRETIX_MEMBERSHIPFEE_REFERENCE_QUESTION, 0);
|
||||
|
||||
int membershipActiveQuestion = systemPropertyManager
|
||||
.getInteger(PretixManager.SYSTEM_PROPERTY_PRETIX_MEMBERSHIP_ACTIVE_QUESTION, 0);
|
||||
@@ -231,23 +216,22 @@ public class MembershipManager {
|
||||
queryParams.add("order__status", "p");
|
||||
|
||||
List<JsonObject> membershipOrderPositions = fetchAllOrderPositions(
|
||||
String.format("/api/v1/organizers/%s/events/%s/orderpositions/",
|
||||
pretixManager.getOrganizer(), pretixManager.getEvent()),
|
||||
String.format("/api/v1/organizers/%s/events/%s/orderpositions/", pretixManager.getOrganizer(),
|
||||
pretixManager.getEvent()),
|
||||
queryParams, Lists.newArrayList());
|
||||
|
||||
queryParams.remove("item");
|
||||
queryParams.add("item", membershipFeeItemId);
|
||||
|
||||
List<JsonObject> membershipfeeOrderPositions = fetchAllOrderPositions(
|
||||
String.format("/api/v1/organizers/%s/events/%s/orderpositions/",
|
||||
pretixManager.getOrganizer(), pretixManager.getEvent()),
|
||||
String.format("/api/v1/organizers/%s/events/%s/orderpositions/", pretixManager.getOrganizer(),
|
||||
pretixManager.getEvent()),
|
||||
queryParams, Lists.newArrayList());
|
||||
|
||||
Map<Integer, List<JsonObject>> membershipfeeOrderPositionMap = Maps.newHashMap();
|
||||
|
||||
for (JsonObject membershipFeeOrderPosition : membershipfeeOrderPositions) {
|
||||
int membershipReference = getNumberAnswer(membershipFeeOrderPosition,
|
||||
membershipFeeReferenceQuestion);
|
||||
int membershipReference = getNumberAnswer(membershipFeeOrderPosition, membershipFeeReferenceQuestion);
|
||||
if (!membershipfeeOrderPositionMap.containsKey(membershipReference)) {
|
||||
membershipfeeOrderPositionMap.put(membershipReference, Lists.newArrayList());
|
||||
}
|
||||
@@ -260,15 +244,12 @@ public class MembershipManager {
|
||||
answers = membershipOrderPosition.getAsJsonArray("answers");
|
||||
}
|
||||
|
||||
JsonObject membershipActiveAnswer = getAnswerObject(membershipOrderPosition,
|
||||
membershipActiveQuestion);
|
||||
int membershipId = getNumberAnswer(membershipOrderPosition,
|
||||
membershipInternalIdQuestion);
|
||||
JsonObject membershipActiveAnswer = getAnswerObject(membershipOrderPosition, membershipActiveQuestion);
|
||||
int membershipId = getNumberAnswer(membershipOrderPosition, membershipInternalIdQuestion);
|
||||
|
||||
if (membershipId == 0) {
|
||||
logger.warn("No membership number found for '"
|
||||
+ membershipOrderPosition.get("order").getAsString()
|
||||
+ "'!");
|
||||
logger.warn(
|
||||
"No membership number found for '" + membershipOrderPosition.get("order").getAsString() + "'!");
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -276,9 +257,7 @@ public class MembershipManager {
|
||||
.getLastPaymentDateForOrder(membershipOrderPosition.get("order").getAsString());
|
||||
|
||||
if (membershipStart == null) {
|
||||
logger.warn("No last payment found for '"
|
||||
+ membershipOrderPosition.get("order").getAsString()
|
||||
+ "'!");
|
||||
logger.warn("No last payment found for '" + membershipOrderPosition.get("order").getAsString() + "'!");
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -288,8 +267,8 @@ public class MembershipManager {
|
||||
years += membershipfeeOrderPositionMap.get(membershipId).size();
|
||||
}
|
||||
|
||||
Instant active = InstantHelper.truncate(
|
||||
InstantHelper.plus(membershipStart, years, ChronoUnit.YEARS), ChronoUnit.YEARS);
|
||||
Instant active = InstantHelper.truncate(InstantHelper.plus(membershipStart, years, ChronoUnit.YEARS),
|
||||
ChronoUnit.YEARS);
|
||||
|
||||
String activeAnswer = pretixDateFormat.format(Date.from(active));
|
||||
|
||||
@@ -308,21 +287,15 @@ public class MembershipManager {
|
||||
JsonObject payload = new JsonObject();
|
||||
|
||||
payload.add("answers", answers);
|
||||
pretixManager.request(
|
||||
String.format("/api/v1/organizers/%s/events/%s/orderpositions/%s/",
|
||||
pretixManager.getOrganizer(), pretixManager.getEvent(),
|
||||
membershipOrderPosition.get("id").getAsString()),
|
||||
HttpMethod.PATCH, payload);
|
||||
pretixManager.request(String.format("/api/v1/organizers/%s/events/%s/orderpositions/%s/",
|
||||
pretixManager.getOrganizer(), pretixManager.getEvent(),
|
||||
membershipOrderPosition.get("id").getAsString()), HttpMethod.PATCH, payload);
|
||||
|
||||
logger.debug("Write active state for '"
|
||||
+ membershipOrderPosition.get("order").getAsString()
|
||||
+ "': "
|
||||
logger.debug("Write active state for '" + membershipOrderPosition.get("order").getAsString() + "': "
|
||||
+ activeAnswer);
|
||||
} else {
|
||||
logger.trace("Order active state for '"
|
||||
+ membershipOrderPosition.get("order").getAsString()
|
||||
+ "' already set: "
|
||||
+ activeAnswer);
|
||||
logger.trace("Order active state for '" + membershipOrderPosition.get("order").getAsString()
|
||||
+ "' already set: " + activeAnswer);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -332,17 +305,16 @@ public class MembershipManager {
|
||||
*/
|
||||
public void createMembershipExtension() {
|
||||
|
||||
String membershipItemId = systemPropertyManager
|
||||
.get(PretixManager.SYSTEM_PROPERTY_PRETIX_MEMBERSHIP_ITEM, "");
|
||||
String membershipItemId = systemPropertyManager.get(PretixManager.SYSTEM_PROPERTY_PRETIX_MEMBERSHIP_ITEM, "");
|
||||
|
||||
String membershipFeeItemId = systemPropertyManager
|
||||
.get(PretixManager.SYSTEM_PROPERTY_PRETIX_MEMBERSHIPFEE_ITEM, "");
|
||||
String membershipFeeItemId = systemPropertyManager.get(PretixManager.SYSTEM_PROPERTY_PRETIX_MEMBERSHIPFEE_ITEM,
|
||||
"");
|
||||
|
||||
int membershipInternalIdQuestion = systemPropertyManager.getInteger(
|
||||
PretixManager.SYSTEM_PROPERTY_PRETIX_MEMBERSHIP_INTERNAL_ID_QUESTION, 0);
|
||||
int membershipInternalIdQuestion = systemPropertyManager
|
||||
.getInteger(PretixManager.SYSTEM_PROPERTY_PRETIX_MEMBERSHIP_INTERNAL_ID_QUESTION, 0);
|
||||
|
||||
int membershipFeeReferenceQuestion = systemPropertyManager.getInteger(
|
||||
PretixManager.SYSTEM_PROPERTY_PRETIX_MEMBERSHIPFEE_REFERENCE_QUESTION, 0);
|
||||
int membershipFeeReferenceQuestion = systemPropertyManager
|
||||
.getInteger(PretixManager.SYSTEM_PROPERTY_PRETIX_MEMBERSHIPFEE_REFERENCE_QUESTION, 0);
|
||||
|
||||
int membershipFeeCodeQuestion = systemPropertyManager
|
||||
.getInteger(PretixManager.SYSTEM_PROPERTY_PRETIX_MEMBERSHIPFEE_CODE_QUESTION, 0);
|
||||
@@ -356,20 +328,19 @@ public class MembershipManager {
|
||||
int membershipfeeReminderDays = systemPropertyManager
|
||||
.getInteger(PretixManager.SYSTEM_PROPERTY_PRETIX_MEMBERSHIPFEE_REMINDER_DAYS, 0);
|
||||
|
||||
int membershipfeeReminderQuestion = systemPropertyManager.getInteger(
|
||||
PretixManager.SYSTEM_PROPERTY_PRETIX_MEMBERSHIPFEE_REMINDER_QUESTION, 0);
|
||||
int membershipfeeReminderQuestion = systemPropertyManager
|
||||
.getInteger(PretixManager.SYSTEM_PROPERTY_PRETIX_MEMBERSHIPFEE_REMINDER_QUESTION, 0);
|
||||
|
||||
boolean orderSendmail = systemPropertyManager
|
||||
.getBoolean(PretixManager.SYSTEM_PROPERTY_PRETIX_ORDER_SENDMAIL, false);
|
||||
boolean orderTestmode = systemPropertyManager
|
||||
.getBoolean(PretixManager.SYSTEM_PROPERTY_PRETIX_ORDER_TESTMODE, true);
|
||||
boolean orderSimulate = systemPropertyManager
|
||||
.getBoolean(PretixManager.SYSTEM_PROPERTY_PRETIX_ORDER_SIMULATE, false);
|
||||
boolean orderSendmail = systemPropertyManager.getBoolean(PretixManager.SYSTEM_PROPERTY_PRETIX_ORDER_SENDMAIL,
|
||||
false);
|
||||
boolean orderTestmode = systemPropertyManager.getBoolean(PretixManager.SYSTEM_PROPERTY_PRETIX_ORDER_TESTMODE,
|
||||
true);
|
||||
boolean orderSimulate = systemPropertyManager.getBoolean(PretixManager.SYSTEM_PROPERTY_PRETIX_ORDER_SIMULATE,
|
||||
false);
|
||||
|
||||
if (!StringUtils.hasText(membershipItemId) || !StringUtils.hasText(membershipFeeItemId)
|
||||
|| membershipInternalIdQuestion == 0 || membershipFeeReferenceQuestion == 0
|
||||
|| membershipFeeCodeQuestion == 0 || membershipActiveQuestion == 0
|
||||
|| membershipfeeOrderDays == 0) {
|
||||
|| membershipFeeCodeQuestion == 0 || membershipActiveQuestion == 0 || membershipfeeOrderDays == 0) {
|
||||
logger.warn("Required system properties for 'createMembershipExtension' not set!");
|
||||
return;
|
||||
}
|
||||
@@ -380,8 +351,8 @@ public class MembershipManager {
|
||||
queryMembershipParams.add("order__status", "p");
|
||||
|
||||
List<JsonObject> membershipOrderPositions = fetchAllOrderPositions(
|
||||
String.format("/api/v1/organizers/%s/events/%s/orderpositions/",
|
||||
pretixManager.getOrganizer(), pretixManager.getEvent()),
|
||||
String.format("/api/v1/organizers/%s/events/%s/orderpositions/", pretixManager.getOrganizer(),
|
||||
pretixManager.getEvent()),
|
||||
queryMembershipParams, Lists.newArrayList());
|
||||
|
||||
List<JsonObject> expireMemberships = Lists.newArrayList();
|
||||
@@ -389,15 +360,11 @@ public class MembershipManager {
|
||||
for (JsonObject membershipOrderPosition : membershipOrderPositions) {
|
||||
Instant active = getDateAnswer(membershipOrderPosition, membershipActiveQuestion);
|
||||
if (active.isAfter(InstantHelper.truncate(Instant.now(), ChronoUnit.YEARS))
|
||||
&& InstantHelper.minus(active, membershipfeeOrderDays, ChronoUnit.DAYS)
|
||||
.isBefore(Instant.now())) {
|
||||
&& InstantHelper.minus(active, membershipfeeOrderDays, ChronoUnit.DAYS).isBefore(Instant.now())) {
|
||||
expireMemberships.add(membershipOrderPosition);
|
||||
} else {
|
||||
logger.trace("Membership '"
|
||||
+ membershipOrderPosition.get("order").getAsString()
|
||||
+ "' not expiring in next "
|
||||
+ membershipfeeOrderDays
|
||||
+ " days.");
|
||||
logger.trace("Membership '" + membershipOrderPosition.get("order").getAsString()
|
||||
+ "' not expiring in next " + membershipfeeOrderDays + " days.");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -407,49 +374,43 @@ public class MembershipManager {
|
||||
queryMembershipFeeParams.add("order__status__in", "n,e,c");
|
||||
|
||||
List<JsonObject> membershipfeeOrderPositions = fetchAllOrderPositions(
|
||||
String.format("/api/v1/organizers/%s/events/%s/orderpositions/",
|
||||
pretixManager.getOrganizer(), pretixManager.getEvent()),
|
||||
String.format("/api/v1/organizers/%s/events/%s/orderpositions/", pretixManager.getOrganizer(),
|
||||
pretixManager.getEvent()),
|
||||
queryMembershipFeeParams, Lists.newArrayList());
|
||||
|
||||
Map<Integer, List<JsonObject>> membershipfeeOrderPositionMap = Maps.newHashMap();
|
||||
|
||||
for (JsonObject membershipfeeOrderPosition : membershipfeeOrderPositions) {
|
||||
int membershipReference = getNumberAnswer(membershipfeeOrderPosition,
|
||||
membershipFeeReferenceQuestion);
|
||||
int membershipReference = getNumberAnswer(membershipfeeOrderPosition, membershipFeeReferenceQuestion);
|
||||
|
||||
JsonObject membershipFeeOrder = pretixManager
|
||||
.getOrder(membershipfeeOrderPosition.get("order").getAsString());
|
||||
|
||||
Instant membershipFeeOrderDatetime = OffsetDateTime
|
||||
.parse(membershipFeeOrder.get("datetime").getAsString()).toInstant();
|
||||
Instant membershipFeeOrderDatetime = OffsetDateTime.parse(membershipFeeOrder.get("datetime").getAsString())
|
||||
.toInstant();
|
||||
|
||||
if (membershipFeeOrderDatetime
|
||||
.isAfter(InstantHelper.truncate(Instant.now(), ChronoUnit.YEARS))) {
|
||||
if (membershipFeeOrderDatetime.isAfter(InstantHelper.truncate(Instant.now(), ChronoUnit.YEARS))) {
|
||||
if (!membershipfeeOrderPositionMap.containsKey(membershipReference)) {
|
||||
membershipfeeOrderPositionMap.put(membershipReference, Lists.newArrayList());
|
||||
}
|
||||
|
||||
membershipfeeOrderPositionMap.get(membershipReference)
|
||||
.add(membershipfeeOrderPosition);
|
||||
membershipfeeOrderPositionMap.get(membershipReference).add(membershipfeeOrderPosition);
|
||||
}
|
||||
}
|
||||
|
||||
for (JsonObject membershipOrderPosition : expireMemberships) {
|
||||
int membershipId = getNumberAnswer(membershipOrderPosition,
|
||||
membershipInternalIdQuestion);
|
||||
int membershipId = getNumberAnswer(membershipOrderPosition, membershipInternalIdQuestion);
|
||||
Instant active = getDateAnswer(membershipOrderPosition, membershipActiveQuestion);
|
||||
|
||||
if (membershipId == 0) {
|
||||
logger.warn("No membership number found for '"
|
||||
+ membershipOrderPosition.get("order").getAsString()
|
||||
+ "'!");
|
||||
logger.warn(
|
||||
"No membership number found for '" + membershipOrderPosition.get("order").getAsString() + "'!");
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!membershipfeeOrderPositionMap.containsKey(membershipId)
|
||||
|| membershipfeeOrderPositionMap.get(membershipId).isEmpty()) {
|
||||
JsonObject membershipOrder = pretixManager
|
||||
.getOrder(membershipOrderPosition.get("order").getAsString());
|
||||
JsonObject membershipOrder = pretixManager.getOrder(membershipOrderPosition.get("order").getAsString());
|
||||
|
||||
JsonObject membershipFeeOrder = new JsonObject();
|
||||
membershipFeeOrder.add("email", membershipOrder.get("email"));
|
||||
@@ -462,8 +423,7 @@ public class MembershipManager {
|
||||
|
||||
JsonArray membershipFeeOrderPositionAnswers = new JsonArray();
|
||||
JsonObject membershipFeeReferenceAnswer = new JsonObject();
|
||||
membershipFeeReferenceAnswer.addProperty("question",
|
||||
membershipFeeReferenceQuestion);
|
||||
membershipFeeReferenceAnswer.addProperty("question", membershipFeeReferenceQuestion);
|
||||
membershipFeeReferenceAnswer.add("options", new JsonArray());
|
||||
membershipFeeReferenceAnswer.add("option_identifiers", new JsonArray());
|
||||
membershipFeeReferenceAnswer.addProperty("answer", membershipId);
|
||||
@@ -473,8 +433,7 @@ public class MembershipManager {
|
||||
membershipFeeCodeAnswer.addProperty("question", membershipFeeCodeQuestion);
|
||||
membershipFeeCodeAnswer.add("options", new JsonArray());
|
||||
membershipFeeCodeAnswer.add("option_identifiers", new JsonArray());
|
||||
membershipFeeCodeAnswer.addProperty("answer",
|
||||
membershipOrderPosition.get("order").getAsString());
|
||||
membershipFeeCodeAnswer.addProperty("answer", membershipOrderPosition.get("order").getAsString());
|
||||
membershipFeeOrderPositionAnswers.add(membershipFeeCodeAnswer);
|
||||
|
||||
membershipFeeOrderPosition.add("answers", membershipFeeOrderPositionAnswers);
|
||||
@@ -484,19 +443,15 @@ public class MembershipManager {
|
||||
membershipFeeOrder.add("locale", membershipOrder.get("locale"));
|
||||
membershipFeeOrder.add("positions", membershipFeeOrderPositions);
|
||||
|
||||
if (membershipOrder.has("payments")
|
||||
&& membershipOrder.getAsJsonArray("payments").size() > 0) {
|
||||
JsonObject payment = membershipOrder.getAsJsonArray("payments").get(0)
|
||||
.getAsJsonObject();
|
||||
if (membershipOrder.has("payments") && membershipOrder.getAsJsonArray("payments").size() > 0) {
|
||||
JsonObject payment = membershipOrder.getAsJsonArray("payments").get(0).getAsJsonObject();
|
||||
membershipFeeOrder.add("payment_provider", payment.get("provider"));
|
||||
}
|
||||
|
||||
Instant expires = InstantHelper.minus(InstantHelper.truncate(
|
||||
InstantHelper.plus(Instant.now(), 1, ChronoUnit.YEARS), ChronoUnit.YEARS),
|
||||
1, ChronoUnit.DAYS);
|
||||
InstantHelper.plus(Instant.now(), 1, ChronoUnit.YEARS), ChronoUnit.YEARS), 1, ChronoUnit.DAYS);
|
||||
|
||||
membershipFeeOrder.addProperty("expires",
|
||||
pretixDateFormat.format(Date.from(expires)));
|
||||
membershipFeeOrder.addProperty("expires", pretixDateFormat.format(Date.from(expires)));
|
||||
membershipFeeOrder.addProperty("send_email", orderSendmail);
|
||||
membershipFeeOrder.addProperty("testmode", orderTestmode);
|
||||
membershipFeeOrder.addProperty("simulate", orderSimulate);
|
||||
@@ -505,20 +460,16 @@ public class MembershipManager {
|
||||
|
||||
JsonObject expire = new JsonObject();
|
||||
expire.addProperty("expires", pretixDateFormat.format(Date.from(expires)));
|
||||
membershipFeeOrder = pretixManager
|
||||
.extendOrder(membershipFeeOrder.get("code").getAsString(), expire);
|
||||
membershipFeeOrder = pretixManager.extendOrder(membershipFeeOrder.get("code").getAsString(), expire);
|
||||
|
||||
logger.debug("Create membership fee order: "
|
||||
+ membershipFeeOrder.toString());
|
||||
logger.debug("Create membership fee order: " + membershipFeeOrder.toString());
|
||||
} else
|
||||
// send reminder mail for membership fee order
|
||||
if (membershipfeeReminderDays > 0 && membershipfeeReminderQuestion > 0
|
||||
&& active.isAfter(InstantHelper.truncate(Instant.now(), ChronoUnit.YEARS))
|
||||
&& InstantHelper.minus(active, membershipfeeReminderDays, ChronoUnit.DAYS)
|
||||
.isBefore(Instant.now())) {
|
||||
&& active.isAfter(InstantHelper.truncate(Instant.now(), ChronoUnit.YEARS)) && InstantHelper
|
||||
.minus(active, membershipfeeReminderDays, ChronoUnit.DAYS).isBefore(Instant.now())) {
|
||||
|
||||
for (JsonObject membershipfeeOrderPosition : membershipfeeOrderPositionMap
|
||||
.get(membershipId)) {
|
||||
for (JsonObject membershipfeeOrderPosition : membershipfeeOrderPositionMap.get(membershipId)) {
|
||||
|
||||
JsonObject membershipFeeOrder = pretixManager
|
||||
.getOrder(membershipfeeOrderPosition.get("order").getAsString());
|
||||
@@ -526,17 +477,15 @@ public class MembershipManager {
|
||||
if (!"c".equals(membershipFeeOrder.get("status").getAsString())) {
|
||||
JsonArray membershipfeeAnswers = new JsonArray();
|
||||
if (membershipfeeOrderPosition.has("answers")) {
|
||||
membershipfeeAnswers = membershipfeeOrderPosition
|
||||
.getAsJsonArray("answers");
|
||||
membershipfeeAnswers = membershipfeeOrderPosition.getAsJsonArray("answers");
|
||||
}
|
||||
|
||||
JsonObject membershipReminderAnswer = getAnswerObject(
|
||||
membershipfeeOrderPosition, membershipfeeReminderQuestion);
|
||||
JsonObject membershipReminderAnswer = getAnswerObject(membershipfeeOrderPosition,
|
||||
membershipfeeReminderQuestion);
|
||||
|
||||
if (membershipReminderAnswer == null) {
|
||||
membershipReminderAnswer = new JsonObject();
|
||||
membershipReminderAnswer.addProperty("question",
|
||||
membershipfeeReminderQuestion);
|
||||
membershipReminderAnswer.addProperty("question", membershipfeeReminderQuestion);
|
||||
membershipReminderAnswer.add("options", new JsonArray());
|
||||
membershipReminderAnswer.add("option_identifiers", new JsonArray());
|
||||
membershipReminderAnswer.addProperty("answer", "false");
|
||||
@@ -546,15 +495,13 @@ public class MembershipManager {
|
||||
if (!membershipReminderAnswer.get("answer").getAsBoolean()) {
|
||||
membershipReminderAnswer.addProperty("answer", "true");
|
||||
|
||||
pretixManager.sendEmail(
|
||||
membershipfeeOrderPosition.get("order").getAsString());
|
||||
pretixManager.sendEmail(membershipfeeOrderPosition.get("order").getAsString());
|
||||
|
||||
JsonObject payload = new JsonObject();
|
||||
|
||||
payload.add("answers", membershipfeeAnswers);
|
||||
pretixManager.request(
|
||||
String.format(
|
||||
"/api/v1/organizers/%s/events/%s/orderpositions/%s/",
|
||||
String.format("/api/v1/organizers/%s/events/%s/orderpositions/%s/",
|
||||
pretixManager.getOrganizer(), pretixManager.getEvent(),
|
||||
membershipfeeOrderPosition.get("id").getAsString()),
|
||||
HttpMethod.PATCH, payload);
|
||||
@@ -563,18 +510,15 @@ public class MembershipManager {
|
||||
+ membershipfeeOrderPosition.get("order").getAsString());
|
||||
} else {
|
||||
logger.debug("Reminder for Membership fee order of'"
|
||||
+ membershipfeeOrderPosition.get("order").getAsString()
|
||||
+ "' already created.");
|
||||
+ membershipfeeOrderPosition.get("order").getAsString() + "' already created.");
|
||||
}
|
||||
} else {
|
||||
logger.debug("Membership fee order for'"
|
||||
+ membershipfeeOrderPosition.get("order").getAsString()
|
||||
logger.debug("Membership fee order for'" + membershipfeeOrderPosition.get("order").getAsString()
|
||||
+ "' is canceled, no reminder.");
|
||||
}
|
||||
}
|
||||
} else {
|
||||
logger.debug("Membership fee order for '"
|
||||
+ membershipOrderPosition.get("order").getAsString()
|
||||
logger.debug("Membership fee order for '" + membershipOrderPosition.get("order").getAsString()
|
||||
+ "' already created, no reminder.");
|
||||
}
|
||||
|
||||
@@ -585,8 +529,8 @@ public class MembershipManager {
|
||||
* Calculate price.
|
||||
*/
|
||||
public void calculatePrice() {
|
||||
int membershipItemId = systemPropertyManager
|
||||
.getInteger(PretixManager.SYSTEM_PROPERTY_PRETIX_MEMBERSHIP_ITEM, 0);
|
||||
int membershipItemId = systemPropertyManager.getInteger(PretixManager.SYSTEM_PROPERTY_PRETIX_MEMBERSHIP_ITEM,
|
||||
0);
|
||||
String discountPeriod = systemPropertyManager
|
||||
.get(PretixManager.SYSTEM_PROPERTY_PRETIX_MEMBERSHIP_DISCOUNT_PERIOD, "");
|
||||
|
||||
@@ -638,8 +582,7 @@ public class MembershipManager {
|
||||
}
|
||||
|
||||
if (applyDefault && defaultVariationId > 0) {
|
||||
pretixManager.updateVariation(membershipItemId, defaultVariationId,
|
||||
defaultVariation);
|
||||
pretixManager.updateVariation(membershipItemId, defaultVariationId, defaultVariation);
|
||||
}
|
||||
|
||||
} catch (DateTimeParseException e) {
|
||||
@@ -650,13 +593,12 @@ public class MembershipManager {
|
||||
/**
|
||||
* Membership csv export.
|
||||
*
|
||||
* @param writer the writer
|
||||
* @param writer the writer
|
||||
* @param includeInactive the include inactive
|
||||
* @return the json array
|
||||
*/
|
||||
public JsonArray membershipCsvExport(Writer writer, boolean includeInactive) {
|
||||
String membershipItemId = systemPropertyManager
|
||||
.get(PretixManager.SYSTEM_PROPERTY_PRETIX_MEMBERSHIP_ITEM, "0");
|
||||
String membershipItemId = systemPropertyManager.get(PretixManager.SYSTEM_PROPERTY_PRETIX_MEMBERSHIP_ITEM, "0");
|
||||
|
||||
int membershipActiveQuestion = systemPropertyManager
|
||||
.getInteger(PretixManager.SYSTEM_PROPERTY_PRETIX_MEMBERSHIP_ACTIVE_QUESTION, 0);
|
||||
@@ -670,18 +612,15 @@ public class MembershipManager {
|
||||
List<String> answerHeaders = Lists.newArrayList();
|
||||
|
||||
List<JsonObject> orderPositions = fetchAllOrderPositions(
|
||||
String.format("/api/v1/organizers/%s/events/%s/orderpositions/",
|
||||
pretixManager.getOrganizer(), pretixManager.getEvent()),
|
||||
String.format("/api/v1/organizers/%s/events/%s/orderpositions/", pretixManager.getOrganizer(),
|
||||
pretixManager.getEvent()),
|
||||
queryParams, Lists.newArrayList());
|
||||
|
||||
for (JsonObject orderPosition : orderPositions) {
|
||||
JsonObject order = pretixManager
|
||||
.request(
|
||||
String.format("/api/v1/organizers/%s/events/%s/orders/%s/",
|
||||
pretixManager.getOrganizer(), pretixManager.getEvent(),
|
||||
orderPosition.get("order").getAsString()),
|
||||
HttpMethod.GET, queryParams)
|
||||
.getAsJsonObject();
|
||||
JsonObject order = pretixManager.request(
|
||||
String.format("/api/v1/organizers/%s/events/%s/orders/%s/", pretixManager.getOrganizer(),
|
||||
pretixManager.getEvent(), orderPosition.get("order").getAsString()),
|
||||
HttpMethod.GET, queryParams).getAsJsonObject();
|
||||
|
||||
JsonObject member = new JsonObject();
|
||||
|
||||
@@ -696,24 +635,22 @@ public class MembershipManager {
|
||||
answerHeaders.add(question_identifier);
|
||||
}
|
||||
answers.addProperty(question_identifier, answer.get("answer").getAsString());
|
||||
if (membershipActiveQuestion == answer.get("question").getAsInt()
|
||||
&& answer.has("answer")) {
|
||||
if (membershipActiveQuestion == answer.get("question").getAsInt() && answer.has("answer")) {
|
||||
|
||||
Date date;
|
||||
try {
|
||||
date = pretixDateFormat.parse(answer.get("answer").getAsString());
|
||||
active = date.toInstant();
|
||||
} catch (ParseException e) {
|
||||
logger.error("Error on parsing active date for '"
|
||||
+ orderPosition.get("order").getAsString()
|
||||
logger.error("Error on parsing active date for '" + orderPosition.get("order").getAsString()
|
||||
+ "'!", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
member.add("answers", answers);
|
||||
if (includeInactive || active != null
|
||||
&& active.isAfter(InstantHelper.truncate(Instant.now(), ChronoUnit.YEARS))) {
|
||||
if (includeInactive
|
||||
|| active != null && active.isAfter(InstantHelper.truncate(Instant.now(), ChronoUnit.YEARS))) {
|
||||
members.add(member);
|
||||
}
|
||||
}
|
||||
@@ -758,15 +695,14 @@ public class MembershipManager {
|
||||
/**
|
||||
* Fetch all order positions.
|
||||
*
|
||||
* @param path the path
|
||||
* @param path the path
|
||||
* @param queryParams the query params
|
||||
* @param result the result
|
||||
* @param result the result
|
||||
* @return the list
|
||||
*/
|
||||
protected List<JsonObject> fetchAllOrderPositions(String path,
|
||||
MultiValueMap<String, String> queryParams, List<JsonObject> result) {
|
||||
JsonObject orderPositions = pretixManager.request(path, HttpMethod.GET, queryParams)
|
||||
.getAsJsonObject();
|
||||
protected List<JsonObject> fetchAllOrderPositions(String path, MultiValueMap<String, String> queryParams,
|
||||
List<JsonObject> result) {
|
||||
JsonObject orderPositions = pretixManager.request(path, HttpMethod.GET, queryParams).getAsJsonObject();
|
||||
|
||||
for (JsonElement element : orderPositions.getAsJsonArray("results")) {
|
||||
JsonObject orderPosition = element.getAsJsonObject();
|
||||
@@ -774,8 +710,7 @@ public class MembershipManager {
|
||||
}
|
||||
|
||||
if (orderPositions.has("next") && !orderPositions.get("next").isJsonNull()) {
|
||||
return fetchAllOrderPositions(orderPositions.get("next").getAsString(), queryParams,
|
||||
result);
|
||||
return fetchAllOrderPositions(orderPositions.get("next").getAsString(), queryParams, result);
|
||||
}
|
||||
|
||||
return result;
|
||||
@@ -785,7 +720,7 @@ public class MembershipManager {
|
||||
* Gets the answer object.
|
||||
*
|
||||
* @param orderPosition the order position
|
||||
* @param question the question
|
||||
* @param question the question
|
||||
* @return the answer object
|
||||
*/
|
||||
protected JsonObject getAnswerObject(JsonObject orderPosition, int question) {
|
||||
@@ -804,7 +739,7 @@ public class MembershipManager {
|
||||
* Gets the number answer.
|
||||
*
|
||||
* @param orderPosition the order position
|
||||
* @param question the question
|
||||
* @param question the question
|
||||
* @return the number answer
|
||||
*/
|
||||
protected int getNumberAnswer(JsonObject orderPosition, int question) {
|
||||
@@ -819,7 +754,7 @@ public class MembershipManager {
|
||||
* Gets the date answer.
|
||||
*
|
||||
* @param orderPosition the order position
|
||||
* @param question the question
|
||||
* @param question the question
|
||||
* @return the date answer
|
||||
*/
|
||||
protected Instant getDateAnswer(JsonObject orderPosition, int question) {
|
||||
@@ -828,11 +763,8 @@ public class MembershipManager {
|
||||
try {
|
||||
return pretixDateFormat.parse(answer.get("answer").getAsString()).toInstant();
|
||||
} catch (ParseException e) {
|
||||
logger.error("Error on parsing active date for '"
|
||||
+ orderPosition.get("order").getAsString()
|
||||
+ "' in question '"
|
||||
+ question
|
||||
+ "'!", e);
|
||||
logger.error("Error on parsing active date for '" + orderPosition.get("order").getAsString()
|
||||
+ "' in question '" + question + "'!", e);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
|
||||
+4
-6
@@ -101,14 +101,13 @@ public class MembershipController extends BaseController {
|
||||
* Gets the member mail list.
|
||||
*
|
||||
* @param includeInactive the include inactive
|
||||
* @param response the response
|
||||
* @param response the response
|
||||
* @return the member mail list
|
||||
* @throws IOException Signals that an I/O exception has occurred.
|
||||
*/
|
||||
@PreAuthorize("hasRole('ROLE_ADMIN')")
|
||||
@GetMapping("/export")
|
||||
public void getMemberMailList(
|
||||
@RequestParam("includeInactive") Optional<Boolean> includeInactive,
|
||||
public void getMemberMailList(@RequestParam("includeInactive") Optional<Boolean> includeInactive,
|
||||
HttpServletResponse response) throws IOException {
|
||||
response.setContentType("text/csv");
|
||||
response.setCharacterEncoding(StandardCharsets.UTF_8.name());
|
||||
@@ -120,7 +119,7 @@ public class MembershipController extends BaseController {
|
||||
* Webhook.
|
||||
*
|
||||
* @param webhookKey the webhook key
|
||||
* @param payload the payload
|
||||
* @param payload the payload
|
||||
*/
|
||||
@PostMapping("/pretix/webhook")
|
||||
public void webhook(@RequestParam("key") String webhookKey, @RequestBody String payload) {
|
||||
@@ -130,8 +129,7 @@ public class MembershipController extends BaseController {
|
||||
|
||||
JsonObject event = JsonParser.parseString(payload).getAsJsonObject();
|
||||
|
||||
if (event.has("action")
|
||||
&& "pretix.event.order.paid".equals(event.get("action").getAsString())) {
|
||||
if (event.has("action") && "pretix.event.order.paid".equals(event.get("action").getAsString())) {
|
||||
membershipManager.generateMembershipIds();
|
||||
membershipManager.activeMemberships();
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user