Page MenuHomePhorge

No OneTemporary

Size
4 KB
Referenced Files
None
Subscribers
None
diff --git a/src/client/CMakeLists.txt b/src/client/CMakeLists.txt
index abc56f7..72c1320 100644
--- a/src/client/CMakeLists.txt
+++ b/src/client/CMakeLists.txt
@@ -1,47 +1,48 @@
set(kazvclient_SRCS
sdk-model.cpp
client-model.cpp
client.cpp
clientutil.cpp
+ status-utils.cpp
actions/auth.cpp
actions/sync.cpp
actions/paginate.cpp
actions/membership.cpp
actions/states.cpp
actions/account-data.cpp
actions/send.cpp
actions/ephemeral.cpp
actions/content.cpp
actions/encryption.cpp
actions/profile.cpp
device-list-tracker.cpp
encrypted-file.cpp
room/room-model.cpp
room/room.cpp
push-rules-desc.cpp
notification-handler.cpp
power-levels-desc.cpp
)
add_library(kazvclient ${kazvclient_SRCS})
add_library(libkazv::kazvclient ALIAS kazvclient)
set_target_properties(kazvclient PROPERTIES VERSION ${libkazv_VERSION_STRING} SOVERSION ${libkazv_SOVERSION})
# https://github.com/google/googletest/issues/1841
if (MINGW)
target_compile_options(kazvclient PRIVATE "-Wa,-mbig-obj")
endif()
target_link_libraries(kazvclient PUBLIC kazvbase kazvapi kazvcrypto kazvstore Boost::regex)
target_include_directories(kazvclient PRIVATE .)
target_include_directories(kazvclient
INTERFACE
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
$<INSTALL_INTERFACE:include/kazv/client>
)
install(TARGETS kazvclient EXPORT libkazvTargets LIBRARY)
diff --git a/src/client/status-utils.cpp b/src/client/status-utils.cpp
new file mode 100644
index 0000000..c89729f
--- /dev/null
+++ b/src/client/status-utils.cpp
@@ -0,0 +1,36 @@
+/*
+ * This file is part of libkazv.
+ * SPDX-FileCopyrightText: 2020-2024 tusooa <tusooa@kazv.moe>
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+#include <libkazv-config.hpp>
+#include "status-utils.hpp"
+
+namespace Kazv
+{
+ detail::ReturnEffectStatusT failWithResponse(const BaseJob::Response &r)
+ {
+ auto code = r.errorCode();
+ auto msg = r.errorMessage();
+ auto d = json{
+ {"error", msg},
+ {"errorCode", code},
+ };
+ return detail::ReturnEffectStatusT{
+ EffectStatus(/* succ = */ false, JsonWrap(d))
+ };
+ }
+
+ detail::ReturnEffectStatusT failEffect(std::string errorCode, std::string errorMsg)
+ {
+ auto d = json{
+ {"error", errorMsg},
+ {"errorCode", errorCode},
+ };
+
+ return detail::ReturnEffectStatusT{
+ EffectStatus(/* succ = */ false, JsonWrap(d))
+ };
+ }
+}
diff --git a/src/client/status-utils.hpp b/src/client/status-utils.hpp
index 134c9f8..d40ef5f 100644
--- a/src/client/status-utils.hpp
+++ b/src/client/status-utils.hpp
@@ -1,60 +1,51 @@
/*
* This file is part of libkazv.
- * SPDX-FileCopyrightText: 2020 Tusooa Zhu <tusooa@kazv.moe>
+ * SPDX-FileCopyrightText: 2020-2024 tusooa <tusooa@kazv.moe>
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
#pragma once
-
+#include <libkazv-config.hpp>
#include <context.hpp>
+#include <basejob.hpp>
namespace Kazv
{
namespace detail
{
struct SimpleFailT
{
template<class Context>
EffectStatus operator()(Context &&) const {
return EffectStatus(/* succ = */ false);
};
};
+
+ struct ReturnEffectStatusT
+ {
+ EffectStatus st;
+
+ template<class Context>
+ EffectStatus operator()(Context &&) const
+ {
+ return st;
+ };
+ };
}
/**
* A effect that returns a failed EffectStatus upon invocation.
*/
constexpr auto simpleFail = detail::SimpleFailT{};
/**
* A effect that returns a failed EffectStatus upon invocation.
*/
- template<class Resp>
- constexpr auto failWithResponse(Resp &&r)
- {
- auto code = r.errorCode();
- auto msg = std::forward<Resp>(r).errorMessage();
- auto d = json{
- {"error", msg},
- {"errorCode", code},
- };
- return [data=JsonWrap(d)](auto &&) {
- return EffectStatus(/* succ = */ false, data);
- };
- }
+ detail::ReturnEffectStatusT failWithResponse(const BaseJob::Response &r);
/**
* An effect that returns a failed EffectStatus with the given
* error code and message.
*/
- inline auto failEffect(std::string errorCode, std::string errorMsg)
- {
- auto d = json{
- {"error", errorMsg},
- {"errorCode", errorCode},
- };
- return [data=JsonWrap(d)](auto &&) {
- return EffectStatus(/* succ = */ false, data);
- };
- }
+ detail::ReturnEffectStatusT failEffect(std::string errorCode, std::string errorMsg);
}

File Metadata

Mime Type
text/x-diff
Expires
Sat, Aug 8, 7:23 AM (15 h, 41 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1722978
Default Alt Text
(4 KB)

Event Timeline