Skip to content

Commit

Permalink
Add Delete User API and tests.
Browse files Browse the repository at this point in the history
  • Loading branch information
creativepsyco committed Feb 24, 2015
1 parent abb0ac0 commit 14d85f6
Show file tree
Hide file tree
Showing 3 changed files with 50 additions and 3 deletions.
@@ -1,6 +1,7 @@
package intercom.piethis.com.intercomclientsdk;

import android.test.AndroidTestCase;
import android.util.Log;

import java.math.BigInteger;
import java.security.SecureRandom;
Expand All @@ -10,6 +11,7 @@
import intercom.piethis.com.intercomclientsdk.protocol.Company;
import intercom.piethis.com.intercomclientsdk.protocol.User;
import intercom.piethis.com.intercomclientsdk.protocol.UserListReponse;
import intercom.piethis.com.intercomclientsdk.protocol.UserRequest;
import retrofit.Callback;
import retrofit.RetrofitError;
import retrofit.client.Response;
Expand All @@ -19,6 +21,8 @@
* Date: 12/02/2015
*/
public class IntercomTest extends AndroidTestCase {
private static final String TAG = IntercomTest.class.getSimpleName();

IntercomConfig config;

Intercom intercom;
Expand All @@ -39,6 +43,7 @@ public void setUp() throws Exception {
config.setAppId(BuildConfig.AppId);
config.setAppKey(BuildConfig.AppKey);
intercom = new Intercom(config, getContext());
Log.d(TAG, "Setup called");
}

public void testIntercomGetUsers() throws Exception {
Expand All @@ -65,6 +70,7 @@ public void failure(RetrofitError error) {

public void testNewSession() throws Exception {
final CountDownLatch signal = new CountDownLatch(1);
randomEmail = "";
intercom.beginNewSession(userId, new Callback<User>() {
@Override
public void success(User user, Response response) {
Expand All @@ -80,6 +86,7 @@ public void failure(RetrofitError error) {
}
});
signal.await();
_testDeleteUser();
}

public void testNewSessionWithCompany() throws Exception {
Expand All @@ -106,6 +113,30 @@ public void failure(RetrofitError error) {
}
});
signal.await();
_testDeleteUser();
}

private void _testDeleteUser() throws Exception {
final CountDownLatch signal = new CountDownLatch(1);
UserRequest userRequest = new UserRequest();
userRequest.userId = this.userId;
userRequest.email = randomEmail;

intercom.deleteUser(userRequest, new Callback<User>() {
@Override
public void success(User user, Response response) {
signal.countDown();
assertEquals("User id not same", user.userId, IntercomTest.this.userId);
assertEquals("Email not same", user.email, randomEmail);
}

@Override
public void failure(RetrofitError error) {
signal.countDown();
fail(error.toString());
}
});
signal.await();
}

@Override
Expand Down
@@ -1,6 +1,7 @@
package intercom.piethis.com.intercomclientsdk;

import android.content.Context;
import android.text.TextUtils;

import java.lang.ref.WeakReference;
import java.util.ArrayList;
Expand Down Expand Up @@ -87,4 +88,15 @@ public void newUserSignedUp(UserRequest user, Callback<User> callback) {
user.signUpTime = System.currentTimeMillis() / 1000L;
this.intercomClient.getUserService().createNewSession(user, callback);
}

public void deleteUser(UserRequest user, Callback<User> callback) {
if (TextUtils.isEmpty(user.email) && TextUtils.isEmpty(user.userId)) {
throw new IllegalArgumentException("Email and userId cannot be both empty.");
}
if (TextUtils.isEmpty(user.email)) {
this.intercomClient.getUserService().deleteUserByUserId(user.userId, callback);
} else {
this.intercomClient.getUserService().deleteUserByEmail(user.email, callback);
}
}
}
Expand Up @@ -4,9 +4,7 @@
import intercom.piethis.com.intercomclientsdk.protocol.UserListReponse;
import intercom.piethis.com.intercomclientsdk.protocol.UserRequest;
import retrofit.Callback;
import retrofit.http.Body;
import retrofit.http.GET;
import retrofit.http.POST;
import retrofit.http.*;

/**
* User: msk
Expand All @@ -19,4 +17,10 @@ public interface Users {

@POST("/users")
public void createNewSession(@Body UserRequest user, Callback<User> callback);

@DELETE("/users")
public void deleteUserByEmail(@Query("email") String email, Callback<User> callback);

@DELETE("/users")
public void deleteUserByUserId(@Query("user_id") String userId, Callback<User> callback);
}

0 comments on commit 14d85f6

Please sign in to comment.