namespace AndroidApi.Controllers.Api
{
    [AllowAnonymous]
    [RoutePrefix("v1/account")]
    public class AccountController : ApiController
    {
        private readonly IAccountRepository _repository;

        public AccountController(IAccountRepository repository)
        {
            _repository = repository;
        }
        
        [Route("signup")]
        public IHttpActionResult Signup(AccountViewModel item)
        {
            try
            {
                AccountViewModel result = new AccountViewModel();

                if (item == null)
                    return BadRequest("No user info");

                if (_repository.IsEmailUnique(item.Email))
                    result = _repository.Save(item);
                else
                    return Conflict(); //409

                return Ok(result);
            }
            catch (Exception ex)
            {
                return InternalServerError(ex);
            }
        }
    }
}