privet_confirm_api_flow.cc revision 58537e28ecd584eab876aee8be7156509866d23a
1// Copyright 2013 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#include "base/values.h" 6#include "chrome/browser/local_discovery/cloud_print_base_api_flow.h" 7#include "chrome/browser/local_discovery/privet_confirm_api_flow.h" 8#include "chrome/common/cloud_print/cloud_print_constants.h" 9 10namespace local_discovery { 11 12PrivetConfirmApiCallFlow::PrivetConfirmApiCallFlow( 13 net::URLRequestContextGetter* request_context, 14 OAuth2TokenService* token_service, 15 const GURL& automated_claim_url, 16 const ResponseCallback& callback) 17 : flow_(request_context, 18 token_service, 19 automated_claim_url, 20 this), 21 callback_(callback) { 22} 23 24PrivetConfirmApiCallFlow::PrivetConfirmApiCallFlow( 25 net::URLRequestContextGetter* request_context, 26 int user_index, 27 const std::string& xsrf_token, 28 const GURL& automated_claim_url, 29 const ResponseCallback& callback) 30 : flow_(request_context, 31 user_index, 32 xsrf_token, 33 automated_claim_url, 34 this), 35 callback_(callback) { 36} 37 38PrivetConfirmApiCallFlow::~PrivetConfirmApiCallFlow() { 39} 40 41void PrivetConfirmApiCallFlow::Start() { 42 flow_.Start(); 43} 44 45void PrivetConfirmApiCallFlow::OnCloudPrintAPIFlowError( 46 CloudPrintBaseApiFlow* flow, 47 CloudPrintBaseApiFlow::Status status) { 48 callback_.Run(status); 49} 50 51void PrivetConfirmApiCallFlow::OnCloudPrintAPIFlowComplete( 52 CloudPrintBaseApiFlow* flow, 53 const base::DictionaryValue* value) { 54 bool success = false; 55 56 if (!value->GetBoolean(cloud_print::kSuccessValue, &success)) { 57 callback_.Run(CloudPrintBaseApiFlow::ERROR_MALFORMED_RESPONSE); 58 return; 59 } 60 61 if (success) { 62 callback_.Run(CloudPrintBaseApiFlow::SUCCESS); 63 } else { 64 callback_.Run(CloudPrintBaseApiFlow::ERROR_FROM_SERVER); 65 } 66} 67 68} // namespace local_discovery 69