Search in sources :

Example 1 with UserId

use of com.symphony.api.model.UserId in project spring-bot by finos.

the class SymphonyConversationsImpl method ensureChat.

@Override
public SymphonyRoom ensureChat(Chat r, List<User> users, Map<String, Object> meta) {
    String description = "";
    String name = r.getName();
    boolean isPublic = false;
    description = (String) meta.getOrDefault(ROOM_DESCRIPTION, "");
    isPublic = (boolean) meta.getOrDefault(ROOM_PUBLIC, false);
    SymphonyRoom theRoom = null;
    if (r instanceof SymphonyRoom) {
        if (((SymphonyRoom) r).getStreamId() != null) {
            theRoom = (SymphonyRoom) r;
        } else {
            theRoom = loadRoomByName(name);
        }
    }
    if (theRoom == null) {
        // create the room
        V3RoomAttributes ra = new V3RoomAttributes().name(name).description(description)._public(isPublic).discoverable(isPublic);
        V3RoomDetail detail = streamsApi.v3RoomCreatePost(ra, null);
        String streamId = detail.getRoomSystemInfo().getId();
        theRoom = new SymphonyRoom(name, streamId);
        // next, we need to make sure that all of the admins are members of the room and owners.
        List<Long> adminIds = getDefaultAdministrators().stream().filter(u -> u instanceof SymphonyUser).map(u -> (SymphonyUser) u).map(su -> Long.parseLong(su.getUserId())).filter(id -> id != null).collect(Collectors.toList());
        for (Long user : adminIds) {
            UserId u = new UserId().id(user);
            rmApi.v1RoomIdMembershipAddPost(u, null, streamId);
            rmApi.v1RoomIdMembershipPromoteOwnerPost(u, null, streamId);
        }
        LOG.info("Created room {} with admins {} ", theRoom, getDefaultAdministrators());
    }
    // next, ensure that all the users are in the room
    String streamId = theRoom.getStreamId();
    users.stream().filter(u -> u instanceof SymphonyUser).map(u -> (SymphonyUser) u).forEach(u -> rmApi.v1RoomIdMembershipAddPost(new UserId().id(Long.parseLong(u.getUserId())), null, streamId));
    return theRoom;
}
Also used : V2RoomSearchCriteria(com.symphony.api.model.V2RoomSearchCriteria) User(org.finos.symphony.toolkit.workflow.content.User) SymphonyIdentity(com.symphony.api.id.SymphonyIdentity) TypeEnum(com.symphony.api.model.StreamType.TypeEnum) LoggerFactory(org.slf4j.LoggerFactory) V3RoomDetail(com.symphony.api.model.V3RoomDetail) StreamsApi(com.symphony.api.pod.StreamsApi) InitializingBean(org.springframework.beans.factory.InitializingBean) V3RoomAttributes(com.symphony.api.model.V3RoomAttributes) ArrayList(java.util.ArrayList) HashSet(java.util.HashSet) Map(java.util.Map) StreamList(com.symphony.api.model.StreamList) UserV2(com.symphony.api.model.UserV2) V3RoomSearchResults(com.symphony.api.model.V3RoomSearchResults) Logger(org.slf4j.Logger) UsersApi(com.symphony.api.pod.UsersApi) SymphonyUser(org.finos.symphony.toolkit.workflow.sources.symphony.content.SymphonyUser) AbstractStreamResolving(org.finos.symphony.toolkit.workflow.sources.symphony.streams.AbstractStreamResolving) MembershipList(com.symphony.api.model.MembershipList) SymphonyApiProperties(org.finos.symphony.toolkit.spring.api.properties.SymphonyApiProperties) RoomMembershipApi(com.symphony.api.pod.RoomMembershipApi) Set(java.util.Set) Chat(org.finos.symphony.toolkit.workflow.content.Chat) Collectors(java.util.stream.Collectors) List(java.util.List) Addressable(org.finos.symphony.toolkit.workflow.content.Addressable) StreamAttributes(com.symphony.api.model.StreamAttributes) StreamID(com.symphony.user.StreamID) SymphonyRoom(org.finos.symphony.toolkit.workflow.sources.symphony.content.SymphonyRoom) StreamFilter(com.symphony.api.model.StreamFilter) Collections(java.util.Collections) StreamType(com.symphony.api.model.StreamType) UserId(com.symphony.api.model.UserId) V3RoomDetail(com.symphony.api.model.V3RoomDetail) UserId(com.symphony.api.model.UserId) V3RoomAttributes(com.symphony.api.model.V3RoomAttributes) SymphonyUser(org.finos.symphony.toolkit.workflow.sources.symphony.content.SymphonyUser) SymphonyRoom(org.finos.symphony.toolkit.workflow.sources.symphony.content.SymphonyRoom)

Aggregations

SymphonyIdentity (com.symphony.api.id.SymphonyIdentity)1 MembershipList (com.symphony.api.model.MembershipList)1 StreamAttributes (com.symphony.api.model.StreamAttributes)1 StreamFilter (com.symphony.api.model.StreamFilter)1 StreamList (com.symphony.api.model.StreamList)1 StreamType (com.symphony.api.model.StreamType)1 TypeEnum (com.symphony.api.model.StreamType.TypeEnum)1 UserId (com.symphony.api.model.UserId)1 UserV2 (com.symphony.api.model.UserV2)1 V2RoomSearchCriteria (com.symphony.api.model.V2RoomSearchCriteria)1 V3RoomAttributes (com.symphony.api.model.V3RoomAttributes)1 V3RoomDetail (com.symphony.api.model.V3RoomDetail)1 V3RoomSearchResults (com.symphony.api.model.V3RoomSearchResults)1 RoomMembershipApi (com.symphony.api.pod.RoomMembershipApi)1 StreamsApi (com.symphony.api.pod.StreamsApi)1 UsersApi (com.symphony.api.pod.UsersApi)1 StreamID (com.symphony.user.StreamID)1 ArrayList (java.util.ArrayList)1 Collections (java.util.Collections)1 HashSet (java.util.HashSet)1