1 // Copyright 2024 The Chromium Authors
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 "net/device_bound_sessions/registration_request_param.h"
6
7 #include "net/device_bound_sessions/registration_fetcher_param.h"
8 #include "net/device_bound_sessions/session.h"
9
10 namespace net::device_bound_sessions {
11
12 RegistrationRequestParam::RegistrationRequestParam(
13 const RegistrationRequestParam& other) = default;
14 RegistrationRequestParam& RegistrationRequestParam::operator=(
15 const RegistrationRequestParam& other) = default;
16
17 RegistrationRequestParam::RegistrationRequestParam(
18 RegistrationRequestParam&&) noexcept = default;
19 RegistrationRequestParam& RegistrationRequestParam::operator=(
20 RegistrationRequestParam&&) noexcept = default;
21
22 RegistrationRequestParam::~RegistrationRequestParam() = default;
23
24 // static
Create(RegistrationFetcherParam && fetcher_param)25 RegistrationRequestParam RegistrationRequestParam::Create(
26 RegistrationFetcherParam&& fetcher_param) {
27 return RegistrationRequestParam(fetcher_param.TakeRegistrationEndpoint(),
28 std::nullopt, fetcher_param.TakeChallenge(),
29 fetcher_param.TakeAuthorization());
30 }
31
32 // static
Create(const Session & session)33 RegistrationRequestParam RegistrationRequestParam::Create(
34 const Session& session) {
35 return RegistrationRequestParam(session.refresh_url(), session.id().value(),
36 session.cached_challenge(), std::nullopt);
37 }
38
39 // static
CreateForTesting(const GURL & registration_endpoint,std::string session_identifier,std::optional<std::string> challenge)40 RegistrationRequestParam RegistrationRequestParam::CreateForTesting(
41 const GURL& registration_endpoint,
42 std::string session_identifier,
43 std::optional<std::string> challenge) {
44 return RegistrationRequestParam(registration_endpoint,
45 std::move(session_identifier),
46 std::move(challenge), std::nullopt);
47 }
48
RegistrationRequestParam(const GURL & registration_endpoint,std::optional<std::string> session_identifier,std::optional<std::string> challenge,std::optional<std::string> authorization)49 RegistrationRequestParam::RegistrationRequestParam(
50 const GURL& registration_endpoint,
51 std::optional<std::string> session_identifier,
52 std::optional<std::string> challenge,
53 std::optional<std::string> authorization)
54 : registration_endpoint_(registration_endpoint),
55 session_identifier_(std::move(session_identifier)),
56 challenge_(std::move(challenge)),
57 authorization_(std::move(authorization)) {}
58
59 } // namespace net::device_bound_sessions
60