blob: 0ca8e3eededff4ecb20f0c2562b8836685bbe8a4 [file] [log] [blame]
// Copyright 2025 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_GLIC_GLIC_USER_STATUS_REQUEST_H_
#define CHROME_BROWSER_GLIC_GLIC_USER_STATUS_REQUEST_H_
#include "base/functional/callback.h"
#include "chrome/browser/glic/glic_user_status_code.h"
#include "google_apis/common/api_error_codes.h"
#include "google_apis/common/base_requests.h"
#include "google_apis/common/request_sender.h"
namespace glic {
class GlicUserStatusRequest : public google_apis::UrlFetchRequestBase {
public:
explicit GlicUserStatusRequest(
google_apis::RequestSender* sender,
GURL url,
base::OnceCallback<void(const CachedUserStatus&)>
process_response_callback);
GlicUserStatusRequest(const GlicUserStatusRequest&) = delete;
GlicUserStatusRequest& operator=(const GlicUserStatusRequest&) = delete;
~GlicUserStatusRequest() override;
protected:
GURL GetURL() const override;
google_apis::ApiErrorCode MapReasonToError(
google_apis::ApiErrorCode code,
const std::string& reason) override;
bool IsSuccessfulErrorCode(google_apis::ApiErrorCode error) override;
void ProcessURLFetchResults(
const network::mojom::URLResponseHead* response_head,
base::FilePath response_file,
std::string response_body) override;
void RunCallbackOnPrematureFailure(google_apis::ApiErrorCode code) override;
private:
static CachedUserStatus MapApiErrorCodeAndResponseBodyToUserStatus(
google_apis::ApiErrorCode result_code,
std::string_view response_body);
GURL url_;
base::OnceCallback<void(const CachedUserStatus&)> process_response_callback_;
};
} // namespace glic
#endif // CHROME_BROWSER_GLIC_GLIC_USER_STATUS_REQUEST_H_