Search in sources :

Example 1 with Member

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;
}
Also used : ArrayList(java.util.ArrayList) TransferDto(org.collectiveone.modules.tokens.dto.TransferDto) Initiative(org.collectiveone.modules.initiatives.Initiative) Member(org.collectiveone.modules.initiatives.Member) Transactional(javax.transaction.Transactional)

Example 2 with Member

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);
            }
        }
    }
}
Also used : Member(org.collectiveone.modules.initiatives.Member) Timestamp(java.sql.Timestamp)

Example 3 with Member

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, "");
    }
}
Also used : PostResult(org.collectiveone.common.dto.PostResult) AppUser(org.collectiveone.modules.users.AppUser) Member(org.collectiveone.modules.initiatives.Member) Transactional(javax.transaction.Transactional)

Aggregations

Member (org.collectiveone.modules.initiatives.Member)3 Transactional (javax.transaction.Transactional)2 Timestamp (java.sql.Timestamp)1 ArrayList (java.util.ArrayList)1 PostResult (org.collectiveone.common.dto.PostResult)1 Initiative (org.collectiveone.modules.initiatives.Initiative)1 TransferDto (org.collectiveone.modules.tokens.dto.TransferDto)1 AppUser (org.collectiveone.modules.users.AppUser)1