GeminiRequest.cpp 683 B

12345678910111213141516171819202122232425262728293031
  1. /*
  2. * Copyright (c) 2020-2022, the SerenityOS developers.
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #include <AK/StringBuilder.h>
  7. #include <AK/URL.h>
  8. #include <LibGemini/GeminiRequest.h>
  9. namespace Gemini {
  10. ErrorOr<ByteBuffer> GeminiRequest::to_raw_request() const
  11. {
  12. StringBuilder builder;
  13. TRY(builder.try_append(m_url.to_byte_string()));
  14. TRY(builder.try_append("\r\n"sv));
  15. return builder.to_byte_buffer();
  16. }
  17. Optional<GeminiRequest> GeminiRequest::from_raw_request(ByteBuffer const& raw_request)
  18. {
  19. URL url = StringView(raw_request);
  20. if (!url.is_valid())
  21. return {};
  22. GeminiRequest request;
  23. request.m_url = url;
  24. return request;
  25. }
  26. }