File indexing completed on 2025-01-12 10:32:03
0001 /* 0002 SPDX-FileCopyrightText: 2022-2024 Laurent Montel <montel@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #include "personalaccesstokeninfos.h" 0008 #include "ruqola_debug.h" 0009 0010 #include <QJsonArray> 0011 #include <QJsonObject> 0012 0013 PersonalAccessTokenInfos::PersonalAccessTokenInfos() = default; 0014 0015 QVector<PersonalAccessTokenInfo> PersonalAccessTokenInfos::personalAccessTokenInfos() const 0016 { 0017 return mPersonalAccessTokenInfos; 0018 } 0019 0020 int PersonalAccessTokenInfos::count() const 0021 { 0022 return mPersonalAccessTokenInfos.count(); 0023 } 0024 0025 void PersonalAccessTokenInfos::clear() 0026 { 0027 mPersonalAccessTokenInfos.clear(); 0028 } 0029 0030 PersonalAccessTokenInfo PersonalAccessTokenInfos::at(int index) const 0031 { 0032 if (index < 0 || index > mPersonalAccessTokenInfos.count()) { 0033 qCWarning(RUQOLA_LOG) << "Invalid index " << index; 0034 return {}; 0035 } 0036 return mPersonalAccessTokenInfos.at(index); 0037 } 0038 0039 void PersonalAccessTokenInfos::removeAt(int index) 0040 { 0041 mPersonalAccessTokenInfos.removeAt(index); 0042 } 0043 0044 bool PersonalAccessTokenInfos::isEmpty() const 0045 { 0046 return mPersonalAccessTokenInfos.isEmpty(); 0047 } 0048 0049 void PersonalAccessTokenInfos::setPersonalAccessTokenInfos(const QVector<PersonalAccessTokenInfo> &tokenInfos) 0050 { 0051 mPersonalAccessTokenInfos = tokenInfos; 0052 } 0053 0054 void PersonalAccessTokenInfos::parsePersonalAccessTokenInfos(const QJsonObject &obj) 0055 { 0056 mPersonalAccessTokenInfos.clear(); 0057 const QJsonArray tokensArray = obj[QLatin1String("tokens")].toArray(); 0058 const auto tokensArrayCount = tokensArray.count(); 0059 mPersonalAccessTokenInfos.reserve(tokensArrayCount); 0060 for (auto i = 0; i < tokensArrayCount; ++i) { 0061 PersonalAccessTokenInfo r; 0062 r.parsePersonalAccessTokenInfo(tokensArray.at(i).toObject()); 0063 if (r.isValid()) { 0064 mPersonalAccessTokenInfos.append(std::move(r)); 0065 } else { 0066 qCWarning(RUQOLA_LOG) << "Invalid personal Access Token Info: " << tokensArray.at(i).toObject(); 0067 } 0068 } 0069 } 0070 0071 QDebug operator<<(QDebug d, const PersonalAccessTokenInfos &t) 0072 { 0073 for (int i = 0, total = t.personalAccessTokenInfos().count(); i < total; ++i) { 0074 d << t.personalAccessTokenInfos().at(i) << "\n"; 0075 } 0076 return d; 0077 }