/*
* Copyright (C) 2014 SCVNGR, Inc. d/b/a LevelUp
*
* 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 com.scvngr.levelup.core.net.request.factory;
import android.content.Context;
import android.support.annotation.NonNull;
import com.scvngr.levelup.core.annotation.LevelUpApi;
import com.scvngr.levelup.core.annotation.VisibleForTesting;
import com.scvngr.levelup.core.annotation.VisibleForTesting.Visibility;
import com.scvngr.levelup.core.net.AbstractRequest;
import com.scvngr.levelup.core.net.HttpMethod;
import com.scvngr.levelup.core.net.LevelUpRequest;
import com.scvngr.levelup.core.net.RequestUtils;
import com.scvngr.levelup.core.util.PreconditionUtil;
import java.util.HashMap;
import java.util.Map;
/**
* Request factory for fetching a {@link com.scvngr.levelup.core.model.Registration} from the web
* service.
*/
@LevelUpApi(contract = LevelUpApi.Contract.ENTERPRISE)
public final class RegistrationRequestFactory extends AbstractRequestFactory {
@VisibleForTesting(visibility = Visibility.PRIVATE)
@NonNull
/* package */static final String ENDPOINT_REGISTRATION = "registration";
@VisibleForTesting(visibility = Visibility.PRIVATE)
@NonNull
/* package */static final String PARAM_EMAIL = "email";
/**
* @param context the Application context.
*/
public RegistrationRequestFactory(@NonNull final Context context) {
super(context, null);
}
/**
* Build a request to get the {@link com.scvngr.levelup.core.model.Registration} for the email
* passed.
*
* @param email the user's email address.
* @return an {@link AbstractRequest} to use to get the
* {@link com.scvngr.levelup.core.model.Registration} for the email passed.
*/
@NonNull
@LevelUpApi(contract = LevelUpApi.Contract.ENTERPRISE)
public AbstractRequest buildRegistrationRequest(@NonNull final String email) {
PreconditionUtil.assertNotNull(email, "email");
final Map<String, String> params = new HashMap<String, String>();
RequestUtils.addApiKeyToRequestQueryParams(getContext(), params);
params.put(PARAM_EMAIL, email);
return new LevelUpRequest(getContext(), HttpMethod.GET,
LevelUpRequest.API_VERSION_CODE_V15, ENDPOINT_REGISTRATION, params, null);
}
}