/*
* Copyright 2013 Agorava
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.agorava.linkedin;
import org.agorava.linkedin.model.ConnectionAuthorization;
import org.agorava.linkedin.model.LinkedInProfile;
import java.util.List;
/**
* Operations related to sending messages and sending connect invitations to other users on LinkedIn
*
* @author Robert Drysdale
* @author Antoine Sabot-Durand
*/
public interface CommunicationService {
/**
* Send a textual message to a list of recipientIds Requires id from LinkedInProfile object
*
* @param subject The subject of message
* @param body The body or text of message (does not support html)
* @param recipientIds List of ids
*/
void sendMessage(String subject, String body, List<String> recipientIds);
/**
* Send a textual message to recipientId(s) Requires id from LinkedInProfile object
*
* @param subject The subject of message
* @param body The body or text of message (does not support html)
* @param recipientIds One of more ids
*/
void sendMessage(String subject, String body, String... recipientIds);
/**
* Send a connect invitation message to recipientId. When sending a connection invitation for a LinkedIn profile by ID, you
* must also provide a {@link ConnectionAuthorization} object. This object is available from a {@link LinkedInProfile}
* object after doing a search.
*
* @param subject The subject of message
* @param body The body or text of message (does not support html)
* @param recipientId Id of recipient
* @param connectionAuthorization authorization required to create a connection the connection.
*/
void connectTo(String subject, String body, String recipientId, ConnectionAuthorization connectionAuthorization);
/**
* Send a connect invitation message to and email (for users not on LinkedIn)
*
* @param subject The subject of message
* @param body The body or text of message (does not support html)
* @param email Email address of recipient
* @param firstName First Name of recipient
* @param lastName Last Name of recipient
*/
void connectTo(String subject, String body, String email, String firstName, String lastName);
}