replace accessToken with matrix access token

pull/1384/head
ggurdin 1 year ago
parent 8adf15a1f4
commit b8bd90a44d
No known key found for this signature in database
GPG Key ID: A01CB41737CBB478

@ -91,7 +91,7 @@ class AlternativeTranslator {
final FullTextTranslationResponseModel results =
await FullTextTranslationRepo.translate(
accessToken: await choreographer.accessToken,
accessToken: choreographer.accessToken,
request: FullTextTranslationRequestModel(
text: choreographer.itController.sourceText!,
tgtLang: choreographer.l2LangCode!,
@ -117,7 +117,7 @@ class AlternativeTranslator {
}
similarityResponse = await SimilarityRepo.get(
accessToken: await choreographer.accessToken,
accessToken: choreographer.accessToken,
request: SimilarityRequestModel(
benchmark: results.bestTranslation,
toCompare: [userTranslation!],

@ -402,7 +402,7 @@ class Choreographer {
PangeaTextController get textController => _textController;
Future<String> get accessToken => pangeaController.userController.accessToken;
String get accessToken => pangeaController.userController.accessToken;
clear() {
choreoMode = ChoreoMode.igc;

@ -46,7 +46,7 @@ class IgcController {
);
final IGCTextData igcTextDataResponse = await IgcRepo.getIGC(
await choreographer.accessToken,
choreographer.accessToken,
igcRequest: reqBody,
);

@ -65,7 +65,7 @@ class SpanDataController {
response = _cache[cacheKey]!.data;
} else {
response = SpanDataRepo.getSpanDetails(
await choreographer.accessToken,
choreographer.accessToken,
request: SpanDetailsRepoReqAndRes(
userL1: choreographer.l1LangCode!,
userL2: choreographer.l2LangCode!,

@ -73,7 +73,7 @@ class ITFeedbackCardController extends State<ITFeedbackCard> {
isTranslating = true;
});
FullTextTranslationRepo.translate(
accessToken: await controller.userController.accessToken,
accessToken: controller.userController.accessToken,
request: FullTextTranslationRequestModel(
text: res!.text,
tgtLang: controller.languageController.userL1?.langCode ??

@ -51,7 +51,7 @@ class ContextualDefinitionController {
try {
final ContextualDefinitionResponseModel res =
await _ContextualDefinitionRepo.define(
await _pangeaController.userController.accessToken,
_pangeaController.userController.accessToken,
request,
);
return res;

@ -52,7 +52,7 @@ class ITFeedbackController {
) async {
try {
final ITFeedbackResponseModel res = await _ITFeedbackRepo.get(
await _pangeaController.userController.accessToken,
_pangeaController.userController.accessToken,
request,
);
return res;

@ -145,7 +145,7 @@ class LanguageDetectionController {
return _cache[params]!.data;
} else {
final Future<LanguageDetectionResponse> response = _fetchResponse(
await _pangeaController.userController.accessToken,
_pangeaController.userController.accessToken,
params,
);
_cache[params] = _LanguageDetectionCacheItem(data: response);

@ -42,7 +42,7 @@ class MessageDataController extends BaseController {
Future<PangeaMessageTokens?> _getTokens(
TokensRequestModel req,
) async {
final accessToken = await _pangeaController.userController.accessToken;
final accessToken = _pangeaController.userController.accessToken;
final TokensResponseModel igcTextData =
await TokensRepo.tokenize(accessToken, req);
@ -195,7 +195,7 @@ class MessageDataController extends BaseController {
try {
final FullTextTranslationResponseModel res =
await FullTextTranslationRepo.translate(
accessToken: await _pangeaController.userController.accessToken,
accessToken: _pangeaController.userController.accessToken,
request: req,
);

@ -53,7 +53,7 @@ class SpeechToTextController {
return _cache[cacheKey]!.data;
} else {
final Future<SpeechToTextModel> response = _fetchResponse(
accessToken: await _pangeaController.userController.accessToken,
accessToken: _pangeaController.userController.accessToken,
requestModel: requestModel,
);
_cache[cacheKey] = _SpeechToTextCacheItem(data: response);

@ -100,7 +100,7 @@ class TextToSpeechController {
return _cache[params]!.data;
} else {
final Future<TextToSpeechResponse> response = _fetchResponse(
await _pangeaController.userController.accessToken,
_pangeaController.userController.accessToken,
params,
);
_cache[params] = _TextToSpeechCacheItem(data: response);

@ -9,7 +9,6 @@ import 'package:fluffychat/pangea/utils/error_handler.dart';
import 'package:jwt_decode/jwt_decode.dart';
import 'package:matrix/matrix.dart' as matrix;
import '../constants/local.key.dart';
import '../models/user_model.dart';
import '../repo/user_repo.dart';
@ -83,15 +82,6 @@ class UserController extends BaseController {
createdAt: DateTime.now(),
);
final newProfile = Profile(userSettings: userSettings);
// we don't use the pangea profile anymore, but we still need
// it to get access token for the choreographer, so create one
await PUserRepo.repoCreatePangeaUser(
userID: userId!,
dob: dob.toIso8601String(),
fullName: fullname!,
matrixAccessToken: _matrixAccessToken!,
);
await newProfile.saveProfileData(waitForDataInSync: true);
}
@ -157,41 +147,13 @@ class UserController extends BaseController {
/// Returns a boolean value indicating whether a new JWT (JSON Web Token) is needed.
bool needNewJWT(String token) => Jwt.isExpired(token);
/// Retrieves the access token for the user. Looks for it locally,
/// and if it's not found or expired, fetches it from the server.
Future<String> get accessToken async {
final localAccessToken =
_pangeaController.pStoreService.read(PLocalKey.access);
if (localAccessToken == null || needNewJWT(localAccessToken)) {
PangeaProfileResponse? userModel = await PUserRepo.fetchPangeaUserInfo(
userID: userId!,
matrixAccessToken: _matrixAccessToken!,
);
// Oops, some accounts were made without creating pangea profiles, so they
// don't have access to an access token yet. In that case, create a pangea profile.
if (userModel?.access == null) {
final dob = profile.userSettings.dateOfBirth;
if (dob != null) {
userModel = await PUserRepo.repoCreatePangeaUser(
userID: userId!,
dob: dob.toIso8601String(),
fullName: fullname!,
matrixAccessToken: _matrixAccessToken!,
);
if (userModel?.access == null) {
throw ("Trying to get accessToken with null userModel");
}
}
}
_pangeaController.pStoreService.save(
PLocalKey.access,
userModel!.access,
);
return userModel.access;
/// Retrieves matrix access token.
String get accessToken {
final token = _pangeaController.matrixState.client.accessToken;
if (token == null) {
throw ("Trying to get accessToken with null token. User is not logged in.");
}
return localAccessToken;
return token;
}
/// Returns the full name of the user.

@ -54,7 +54,7 @@ class WordController extends BaseController {
if (local != null) return local;
final WordData remote = await WordRepo.getWordNetData(
accessToken: await _pangeaController.userController.accessToken,
accessToken: _pangeaController.userController.accessToken,
fullText: fullText,
word: word,
userL1: userL1,

@ -107,8 +107,7 @@ class FindPartnerController extends State<FindPartner> {
UserProfileSearchResponse response;
try {
final String accessToken =
await pangeaController.userController.accessToken;
final String accessToken = pangeaController.userController.accessToken;
response = await PUserRepo.searchUserProfiles(
accessToken: accessToken,
targetLanguage: targetLanguageSearch.langCode,

@ -2,7 +2,6 @@ import 'dart:convert';
import 'dart:developer';
import 'package:fluffychat/pangea/constants/model_keys.dart';
import 'package:fluffychat/pangea/utils/error_handler.dart';
import 'package:http/http.dart';
import '../models/user_model.dart';
@ -11,33 +10,33 @@ import '../network/requests.dart';
import '../network/urls.dart';
class PUserRepo {
static Future<PangeaProfileResponse?> repoCreatePangeaUser({
required String userID,
required String dob,
required fullName,
required String matrixAccessToken,
}) async {
try {
final Requests req = Requests(
baseUrl: PApiUrls.baseAPI,
matrixAccessToken: matrixAccessToken,
);
// static Future<PangeaProfileResponse?> repoCreatePangeaUser({
// required String userID,
// required String dob,
// required fullName,
// required String matrixAccessToken,
// }) async {
// try {
// final Requests req = Requests(
// baseUrl: PApiUrls.baseAPI,
// matrixAccessToken: matrixAccessToken,
// );
final Map<String, dynamic> body = {
ModelKey.userFullName: fullName,
ModelKey.userPangeaUserId: userID,
ModelKey.userDateOfBirth: dob,
};
final resp = await req.post(
url: PApiUrls.createUser,
body: body,
);
return PangeaProfileResponse.fromJson(jsonDecode(resp.body));
} catch (err, s) {
ErrorHandler.logError(e: err, s: s);
return null;
}
}
// final Map<String, dynamic> body = {
// ModelKey.userFullName: fullName,
// ModelKey.userPangeaUserId: userID,
// ModelKey.userDateOfBirth: dob,
// };
// final resp = await req.post(
// url: PApiUrls.createUser,
// body: body,
// );
// return PangeaProfileResponse.fromJson(jsonDecode(resp.body));
// } catch (err, s) {
// ErrorHandler.logError(e: err, s: s);
// return null;
// }
// }
static Future<PangeaProfileResponse?> fetchPangeaUserInfo({
required String userID,

@ -59,7 +59,7 @@ class MessageTranslationCardState extends State<MessageTranslationCard> {
oldSelectedText = widget.selection.selectedText;
final String accessToken =
await MatrixState.pangeaController.userController.accessToken;
MatrixState.pangeaController.userController.accessToken;
final resp = await FullTextTranslationRepo.translate(
accessToken: accessToken,

@ -312,7 +312,7 @@ class GenerateVocabButtonState extends State<GenerateVocabButton> {
Future<List<Lemma>> _getWords() async {
final ChatTopic topic = await TopicDataRepo.generate(
await _pangeaController.userController.accessToken,
_pangeaController.userController.accessToken,
request: TopicDataRequest(
topicInfo: widget.topic,
numWords: 10,
@ -514,7 +514,7 @@ class PromptsFieldState extends State<PromptsField> {
Future<List<DiscussionPrompt>> _getPrompts() async {
final ChatTopic res = await TopicDataRepo.generate(
await _pangeaController.userController.accessToken,
_pangeaController.userController.accessToken,
request: TopicDataRequest(
topicInfo: widget.topic,
numPrompts: 10,

Loading…
Cancel
Save