/**
 * Appcelerator Platform SDK
 * Copyright (c) 2014 by Appcelerator, Inc. All Rights Reserved.
 * Proprietary and Confidential - This source code is not for redistribution
 */

#import <Foundation/Foundation.h>
#import "APSCloud.h"


/**
 * The Likes API lets you add a "like" to an existing object.
 * For more details about the underlying REST object, see the [ACS API Docs](http://docs.appcelerator.com/cloud/latest/#!/api/Likes).
 */

@interface APSLikes : NSObject




/**
 * Adds a "like" to an object. 
 *
 * To use this method, **a user must be logged in before calling this method.**
 *
 * For more details about the underlying REST method, see the
 * [ACS API Docs](http://docs.appcelerator.com/cloud/latest/#!/api/Likes-method-create).
 * @param data Method parameters specified as an NSDictionary with the following key-value pairs:<ul> 
 * <li>post_id (NSString): Post object to like.</li>
 * <li>photo_id (NSString): Photo object to like.</li>
 * <li>user_id (NSString): User object to like.</li>
 * <li>event_id (NSString): Event object to like.</li>
 * <li>place_id (NSString): Place object to like.</li>
 * <li>checkin_id (NSString): Checkin object to like.</li>
 * <li>status_id (NSString): Status object to like.</li>
 * <li>review_id (NSString): Review object to like.</li>
 * <li>custom_object_id (NSString): Custom object to like.</li>
 * </ul>
 * @param handler Callback to handle the server response. See the Callback section in APSClient.
 * The response data returns the following method-specific properties:<ul>
 * <li>likes (APSLikes[]): A single-element array, containing the "like" object.</li>
 * </ul>
 */

+ (void)create:(NSDictionary *)data withBlock:(APSResponseHandler)handler;




/**
 * Delete the like from the target object. 
 *
 * To use this method, **a user must be logged in before calling this method.**
 *
 * For more details about the underlying REST method, see the
 * [ACS API Docs](http://docs.appcelerator.com/cloud/latest/#!/api/Likes-method-delete).
 * @param data Method parameters specified as an NSDictionary with the following key-value pairs:<ul> 
 * <li>post_id (NSString): Post object to delete "like" from.</li>
 * <li>photo_id (NSString): Photo object to delete "like" from.</li>
 * <li>user_id (NSString): User object to delete "like" from.</li>
 * <li>event_id (NSString): Event object to delete "like" from.</li>
 * <li>place_id (NSString): Place object to delete "like" from.</li>
 * <li>checkin_id (NSString): Checkin object to delete "like" from.</li>
 * <li>status_id (NSString): Status object to delete "like" from.</li>
 * <li>review_id (NSString): Review object to delete "like" from.</li>
 * <li>custom_object_id (NSString): Custom object to delete "like" from.</li>
 * </ul>
 * @param handler Callback to handle the server response. See the Callback section in APSClient.
 */

+ (void)remove:(NSDictionary *)data withBlock:(APSResponseHandler)handler;



@end
