Page MenuHomePhorge

D93.1726897475.diff
No OneTemporary

D93.1726897475.diff

diff --git a/src/client/CMakeLists.txt b/src/client/CMakeLists.txt
--- a/src/client/CMakeLists.txt
+++ b/src/client/CMakeLists.txt
@@ -3,6 +3,7 @@
client-model.cpp
client.cpp
clientutil.cpp
+ status-utils.cpp
actions/auth.cpp
actions/sync.cpp
actions/paginate.cpp
diff --git a/src/client/status-utils.hpp b/src/client/status-utils.hpp
--- a/src/client/status-utils.hpp
+++ b/src/client/status-utils.hpp
@@ -1,12 +1,13 @@
/*
* 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
{
@@ -19,6 +20,17 @@
return EffectStatus(/* succ = */ false);
};
};
+
+ struct ReturnEffectStatusT
+ {
+ EffectStatus st;
+
+ template<class Context>
+ EffectStatus operator()(Context &&) const
+ {
+ return st;
+ };
+ };
}
/**
@@ -29,32 +41,11 @@
/**
* 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);
}
diff --git a/src/client/status-utils.cpp b/src/client/status-utils.cpp
new file mode 100644
--- /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))
+ };
+ }
+}

File Metadata

Mime Type
text/plain
Expires
Fri, Sep 20, 10:44 PM (22 h, 17 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
16867
Default Alt Text
D93.1726897475.diff (3 KB)

Event Timeline