use of org.collectiveone.modules.initiatives.Member in project CollectiveOneWebapp by CollectiveOne.
the class TokenTransferService method getTransferredToUsers.
/**
* Get the tokens transferred from one initiative to its members
*/
@Transactional
public List<TransferDto> getTransferredToUsers(UUID tokenId, UUID initiativeId) {
Initiative initiative = initiativeRepository.findById(initiativeId);
TokenType token = tokenService.getTokenType(tokenId);
List<TransferDto> transferredToUsers = new ArrayList<TransferDto>();
for (Member member : initiative.getMembers()) {
/* get all transfers of a given token made from an initiative to a contributor */
double totalTransferred = memberTransferRepository.getTotalTransferred(tokenId, member.getId());
TransferDto dto = new TransferDto();
dto.setAssetId(token.getId().toString());
dto.setAssetName(token.getName());
dto.setSenderId(initiative.getId().toString());
dto.setSenderName(initiative.getMeta().getName());
dto.setReceiverId(member.getUser().getC1Id().toString());
dto.setReceiverName(member.getUser().getProfile().getNickname());
dto.setValue(totalTransferred);
transferredToUsers.add(dto);
}
return transferredToUsers;
}
use of org.collectiveone.modules.initiatives.Member in project CollectiveOneWebapp by CollectiveOne.
the class ActivityService method addNewInitiativeNotifications.
/**
* Second Step
*/
private void addNewInitiativeNotifications(Activity activity) {
SortedSet<Member> members = activity.getInitiative().getMembers();
for (Member member : members) {
if (activity.getTriggerUser().getC1Id() != member.getUser().getC1Id()) {
/* add a notification only if the trigger user is not the subscriber */
Subscriber subscriber = getOrCreateCollectiveOneSubscriber(member.getUser().getC1Id());
if (subscriber.getState() != SubscriberState.UNSUBSCRIBED) {
/* prepare a notification only if the subscriber is subscribed */
Notification notification = new Notification();
notification.setCreationDate(new Timestamp(System.currentTimeMillis()));
notification.setActivity(activity);
notification.setSubscriber(subscriber);
notification.setState(NotificationState.PENDING);
/* if not unsubscribed from emails, set the email as peding */
if (subscriber.getEmailNotificationsState() != SubscriberEmailNotificationsState.DISABLED) {
notification.setEmailState(NotificationEmailState.PENDING);
} else {
notification.setEmailState(NotificationEmailState.DELIVERED);
}
notification = notificationRepository.save(notification);
activity.getNotifications().add(notification);
}
}
}
}
use of org.collectiveone.modules.initiatives.Member in project CollectiveOneWebapp by CollectiveOne.
the class TokenTransferService method transferFromInitiativeToUser.
@Transactional
public PostResult transferFromInitiativeToUser(UUID initiativeId, UUID receiverId, UUID assetId, double value) {
AppUser receiver = appUserRepository.findByC1Id(receiverId);
TokenType tokenType = tokenService.getTokenType(assetId);
String result = tokenService.transfer(tokenType.getId(), initiativeId, receiver.getC1Id(), value, TokenHolderType.USER);
if (result.equals("success")) {
/* register the transfer to the contributor */
Member member = initiativeService.getOrAddMember(initiativeId, receiver.getC1Id());
MemberTransfer thisTransfer = new MemberTransfer();
thisTransfer.setMember(member);
thisTransfer.setTokenType(tokenType);
thisTransfer.setValue(value);
thisTransfer.setStatus(MemberTransferStatus.DONE);
thisTransfer = memberTransferRepository.save(thisTransfer);
member.getTokensTransfers().add(thisTransfer);
memberRepository.save(member);
return new PostResult("success", "assets transferred successfully", thisTransfer.getId().toString());
} else {
return new PostResult("error", "error transferring assets: " + result, "");
}
}
Aggregations