All Downloads are FREE. Search and download functionalities are using the official Maven repository.

odata.msgraph.client.entity.request.ChatRequest Maven / Gradle / Ivy

package odata.msgraph.client.entity.request;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonIgnoreType;
import com.github.davidmoten.odata.client.ActionRequestNoReturn;
import com.github.davidmoten.odata.client.ContextPath;
import com.github.davidmoten.odata.client.EntityRequest;
import com.github.davidmoten.odata.client.NameValue;
import com.github.davidmoten.odata.client.annotation.Action;
import com.github.davidmoten.odata.client.internal.Checks;
import com.github.davidmoten.odata.client.internal.ParameterMap;
import com.github.davidmoten.odata.client.internal.TypedObject;

import java.lang.Long;
import java.lang.Object;
import java.lang.String;
import java.time.OffsetDateTime;
import java.util.List;
import java.util.Map;
import java.util.Optional;

import odata.msgraph.client.complex.ItemBody;
import odata.msgraph.client.complex.KeyValuePair;
import odata.msgraph.client.complex.TeamworkActivityTopic;
import odata.msgraph.client.complex.TeamworkNotificationRecipient;
import odata.msgraph.client.complex.TeamworkUserIdentity;
import odata.msgraph.client.entity.Chat;
import odata.msgraph.client.entity.collection.request.ChatMessageCollectionRequest;
import odata.msgraph.client.entity.collection.request.ConversationMemberCollectionRequest;
import odata.msgraph.client.entity.collection.request.PinnedChatMessageInfoCollectionRequest;
import odata.msgraph.client.entity.collection.request.TeamsAppInstallationCollectionRequest;
import odata.msgraph.client.entity.collection.request.TeamsTabCollectionRequest;

@JsonIgnoreType
public class ChatRequest extends EntityRequest {

    public ChatRequest(ContextPath contextPath, Optional value) {
        super(Chat.class, contextPath, value, false);
    }

    public TeamsAppInstallationRequest installedApps(String id) {
        return new TeamsAppInstallationRequest(contextPath.addSegment("installedApps").addKeys(new NameValue(id.toString())), Optional.empty());
    }

    public TeamsAppInstallationCollectionRequest installedApps() {
        return new TeamsAppInstallationCollectionRequest(
                        contextPath.addSegment("installedApps"), Optional.empty());
    }

    public ChatMessageInfoRequest lastMessagePreview() {
        return new ChatMessageInfoRequest(contextPath.addSegment("lastMessagePreview"), Optional.empty());
    }

    public ConversationMemberRequest members(String id) {
        return new ConversationMemberRequest(contextPath.addSegment("members").addKeys(new NameValue(id.toString())), Optional.empty());
    }

    public ConversationMemberCollectionRequest members() {
        return new ConversationMemberCollectionRequest(
                        contextPath.addSegment("members"), Optional.empty());
    }

    public ChatMessageRequest messages(String id) {
        return new ChatMessageRequest(contextPath.addSegment("messages").addKeys(new NameValue(id.toString())), Optional.empty());
    }

    public ChatMessageCollectionRequest messages() {
        return new ChatMessageCollectionRequest(
                        contextPath.addSegment("messages"), Optional.empty());
    }

    public PinnedChatMessageInfoRequest pinnedMessages(String id) {
        return new PinnedChatMessageInfoRequest(contextPath.addSegment("pinnedMessages").addKeys(new NameValue(id.toString())), Optional.empty());
    }

    public PinnedChatMessageInfoCollectionRequest pinnedMessages() {
        return new PinnedChatMessageInfoCollectionRequest(
                        contextPath.addSegment("pinnedMessages"), Optional.empty());
    }

    public TeamsTabRequest tabs(String id) {
        return new TeamsTabRequest(contextPath.addSegment("tabs").addKeys(new NameValue(id.toString())), Optional.empty());
    }

    public TeamsTabCollectionRequest tabs() {
        return new TeamsTabCollectionRequest(
                        contextPath.addSegment("tabs"), Optional.empty());
    }

    @Action(name = "sendActivityNotification")
    @JsonIgnore
    public ActionRequestNoReturn sendActivityNotification(TeamworkActivityTopic topic, String activityType, Long chainId, ItemBody previewText, List templateParameters, TeamworkNotificationRecipient recipient) {
        Map _parameters = ParameterMap
            .put("topic", "microsoft.graph.teamworkActivityTopic", topic)
            .put("activityType", "Edm.String", Checks.checkIsAscii(activityType))
            .put("chainId", "Edm.Int64", chainId)
            .put("previewText", "microsoft.graph.itemBody", previewText)
            .put("templateParameters", "Collection(microsoft.graph.keyValuePair)", templateParameters)
            .put("recipient", "microsoft.graph.teamworkNotificationRecipient", recipient)
            .build();
        return new ActionRequestNoReturn(this.contextPath.addActionOrFunctionSegment("microsoft.graph.sendActivityNotification"), _parameters);
    }

    @Action(name = "hideForUser")
    @JsonIgnore
    public ActionRequestNoReturn hideForUser(TeamworkUserIdentity user) {
        Map _parameters = ParameterMap
            .put("user", "microsoft.graph.teamworkUserIdentity", user)
            .build();
        return new ActionRequestNoReturn(this.contextPath.addActionOrFunctionSegment("microsoft.graph.hideForUser"), _parameters);
    }

    @Action(name = "markChatReadForUser")
    @JsonIgnore
    public ActionRequestNoReturn markChatReadForUser(TeamworkUserIdentity user) {
        Map _parameters = ParameterMap
            .put("user", "microsoft.graph.teamworkUserIdentity", user)
            .build();
        return new ActionRequestNoReturn(this.contextPath.addActionOrFunctionSegment("microsoft.graph.markChatReadForUser"), _parameters);
    }

    @Action(name = "markChatUnreadForUser")
    @JsonIgnore
    public ActionRequestNoReturn markChatUnreadForUser(TeamworkUserIdentity user, OffsetDateTime lastMessageReadDateTime) {
        Map _parameters = ParameterMap
            .put("user", "microsoft.graph.teamworkUserIdentity", user)
            .put("lastMessageReadDateTime", "Edm.DateTimeOffset", lastMessageReadDateTime)
            .build();
        return new ActionRequestNoReturn(this.contextPath.addActionOrFunctionSegment("microsoft.graph.markChatUnreadForUser"), _parameters);
    }

    @Action(name = "unhideForUser")
    @JsonIgnore
    public ActionRequestNoReturn unhideForUser(TeamworkUserIdentity user) {
        Map _parameters = ParameterMap
            .put("user", "microsoft.graph.teamworkUserIdentity", user)
            .build();
        return new ActionRequestNoReturn(this.contextPath.addActionOrFunctionSegment("microsoft.graph.unhideForUser"), _parameters);
    }

}