Home | History | Annotate | Download | only in local_discovery
      1 // Copyright 2014 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 "chrome/browser/local_discovery/gcd_registration_ticket_request.h"
      6 
      7 #include "chrome/browser/local_discovery/gcd_constants.h"
      8 #include "chrome/common/cloud_print/cloud_print_constants.h"
      9 #include "components/cloud_devices/common/cloud_devices_urls.h"
     10 
     11 namespace local_discovery {
     12 
     13 namespace {
     14 
     15 const char kUploadData[] = "{ \"userEmail\": \"me\" }";
     16 const char kKindRegistrationTicket[] = "clouddevices#registrationTicket";
     17 const char kGCDKeyId[] = "id";
     18 }
     19 
     20 GCDRegistrationTicketRequest::GCDRegistrationTicketRequest(
     21     const ResponseCallback& callback)
     22     : callback_(callback) {
     23 }
     24 
     25 GCDRegistrationTicketRequest::~GCDRegistrationTicketRequest() {
     26 }
     27 
     28 void GCDRegistrationTicketRequest::GetUploadData(std::string* upload_type,
     29                                                  std::string* upload_data) {
     30   *upload_data = kUploadData;
     31 
     32   // TODO(noamsml): Move this constant to cloud_devices component.
     33   *upload_type = cloud_print::kContentTypeJSON;
     34 }
     35 
     36 net::URLFetcher::RequestType GCDRegistrationTicketRequest::GetRequestType() {
     37   return net::URLFetcher::POST;
     38 }
     39 
     40 void GCDRegistrationTicketRequest::OnGCDAPIFlowError(
     41     GCDApiFlow::Status status) {
     42   callback_.Run(std::string());
     43 }
     44 
     45 void GCDRegistrationTicketRequest::OnGCDAPIFlowComplete(
     46     const base::DictionaryValue& value) {
     47   std::string kind;
     48   std::string id;
     49   value.GetString(kGCDKeyKind, &kind);
     50   if (kind == kKindRegistrationTicket)
     51     value.GetString(kGCDKeyId, &id);
     52   callback_.Run(id);
     53 }
     54 
     55 GURL GCDRegistrationTicketRequest::GetURL() {
     56   return cloud_devices::GetCloudDevicesRelativeURL("registrationTickets");
     57 }
     58 
     59 }  // namespace local_discovery
     60