Skip to content
Snippets Groups Projects
cesiumPlus.dart 3.49 KiB
import 'dart:convert';
import 'dart:io';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:gecko/globals.dart';
import 'package:http/http.dart' as http;
import 'package:path_provider/path_provider.dart';

class CesiumPlusProvider with ChangeNotifier {
  // String pubkey = '';
  // CesiumPlusProvider(this.pubkey);
  var decodedBytes;
  var avatar64;
  TextEditingController cesiumName = TextEditingController();
  int iAvatar = 0;
  bool isComplete = false;

  Future<List> _buildQuery(_pubkey) async {
    var queryGetAvatar = json.encode({
      "query": {
        "bool": {
          "should": [
            {
              "match": {
                '_id': {"query": _pubkey, "boost": 2}
              }
            },
            {
              "prefix": {'_id': _pubkey}
            }
          ]
        }
      },
      "highlight": {
        "fields": {"title": {}, "tags": {}}
      },
      "from": 0,
      "size": 100,
      "_source": [
        "title",
        "avatar",
        "avatar._content_type",
        "description",
        "city",
        "address",
        "socials.url",
        "creationTime",
        "membersCount",
        "type"
      ],
      "indices_boost": {"user": 100, "page": 1, "group": 0.01}
    });

    String cesiumPod = "https://g1.data.le-sou.org";
    String requestUrl = "/user,page,group/profile,record/_search";
    String podRequest = cesiumPod + requestUrl;

    Map<String, String> headers = {
      'Content-type': 'application/json',
      'Accept': 'application/json',
    };

    return [podRequest, queryGetAvatar, headers];
  }

  Future<String> getName(String _pubkey) async {
    String _name;

    List queryOptions = await _buildQuery(_pubkey);
    final response = await http.post(queryOptions[0],