Merge pull request #70 from quantified-uncertainty/indicators-fix
Indicators fix
This commit is contained in:
commit
72600947d0
|
@ -1,7 +1,16 @@
|
|||
input CreateDashboardInput {
|
||||
"""
|
||||
The creator of the dashboard, e.g. "Peter Parker"
|
||||
"""
|
||||
creator: String
|
||||
|
||||
"""The longer description of the dashboard"""
|
||||
description: String
|
||||
|
||||
"""List of question ids"""
|
||||
ids: [ID!]!
|
||||
|
||||
"""The title of the dashboard"""
|
||||
title: String!
|
||||
}
|
||||
|
||||
|
@ -10,10 +19,19 @@ type CreateDashboardResult {
|
|||
}
|
||||
|
||||
type Dashboard {
|
||||
"""
|
||||
The creator of the dashboard, e.g. "Peter Parker"
|
||||
"""
|
||||
creator: String!
|
||||
|
||||
"""The longer description of the dashboard"""
|
||||
description: String!
|
||||
id: ID!
|
||||
|
||||
"""The list of questions on the dashboard"""
|
||||
questions: [Question!]!
|
||||
|
||||
"""The title of the dashboard"""
|
||||
title: String!
|
||||
}
|
||||
|
||||
|
@ -21,6 +39,9 @@ type Dashboard {
|
|||
scalar Date
|
||||
|
||||
type Mutation {
|
||||
"""
|
||||
Create a new dashboard; if the dashboard with given ids already exists then it will be returned instead.
|
||||
"""
|
||||
createDashboard(input: CreateDashboardInput!): CreateDashboardResult!
|
||||
}
|
||||
|
||||
|
@ -31,27 +52,52 @@ type PageInfo {
|
|||
startCursor: String
|
||||
}
|
||||
|
||||
"""Platform supported by metaforecast"""
|
||||
"""Forecasting platform supported by Metaforecast"""
|
||||
type Platform {
|
||||
"""
|
||||
Short unique platform name, e.g. "xrisk"
|
||||
"""
|
||||
id: ID!
|
||||
|
||||
"""
|
||||
Platform name for displaying on frontend etc., e.g. "X-risk estimates"
|
||||
"""
|
||||
label: String!
|
||||
}
|
||||
|
||||
type ProbabilityOption {
|
||||
name: String
|
||||
|
||||
"""0 to 1"""
|
||||
probability: Float
|
||||
}
|
||||
|
||||
"""Various indicators of the question's quality"""
|
||||
type QualityIndicators {
|
||||
liquidity: Float
|
||||
numForecasters: Int
|
||||
numForecasts: Int
|
||||
openInterest: Float
|
||||
sharesVolume: Float
|
||||
spread: Float
|
||||
|
||||
"""0 to 5"""
|
||||
stars: Int!
|
||||
tradeVolume: Float
|
||||
volume: Float
|
||||
}
|
||||
|
||||
type Query {
|
||||
"""Look up a single dashboard by its id"""
|
||||
dashboard(id: ID!): Dashboard!
|
||||
|
||||
"""Get a list of questions that are currently on the frontpage"""
|
||||
frontpage: [Question!]!
|
||||
questions(after: String, before: String, first: Int, last: Int): QueryQuestionsConnection!
|
||||
|
||||
"""
|
||||
Search for questions; uses Algolia instead of the primary metaforecast database
|
||||
"""
|
||||
searchQuestions(input: SearchInput!): [Question!]!
|
||||
}
|
||||
|
||||
|
@ -67,20 +113,33 @@ type QueryQuestionsConnectionEdge {
|
|||
|
||||
type Question {
|
||||
description: String!
|
||||
|
||||
"""Unique string which identifies the question"""
|
||||
id: ID!
|
||||
options: [ProbabilityOption!]!
|
||||
platform: Platform!
|
||||
qualityIndicators: QualityIndicators!
|
||||
|
||||
"""Timestamp at which metaforecast fetched the question"""
|
||||
timestamp: Date!
|
||||
title: String!
|
||||
|
||||
"""
|
||||
Non-unique, a very small number of platforms have a page for more than one prediction
|
||||
"""
|
||||
url: String!
|
||||
visualization: String
|
||||
}
|
||||
|
||||
input SearchInput {
|
||||
"""List of platform ids to filter by"""
|
||||
forecastingPlatforms: [String!]
|
||||
|
||||
"""Minimum number of forecasts on a question"""
|
||||
forecastsThreshold: Int
|
||||
limit: Int
|
||||
query: String!
|
||||
|
||||
"""Minimum number of stars on a question"""
|
||||
starsThreshold: Int
|
||||
}
|
|
@ -34,6 +34,8 @@ export interface QualityIndicators {
|
|||
yes_bid?: any;
|
||||
yes_ask?: any;
|
||||
spread?: any;
|
||||
open_interest?: any;
|
||||
trade_volume?: any;
|
||||
}
|
||||
|
||||
export type FetchedQuestion = Omit<
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -34,18 +34,36 @@ export const QualityIndicatorsObj = builder
|
|||
.objectRef<QualityIndicators>("QualityIndicators")
|
||||
.implement({
|
||||
description: "Various indicators of the question's quality",
|
||||
fields: (t) => ({
|
||||
fields: (t) => {
|
||||
const maybeIntField = (name: keyof QualityIndicators) =>
|
||||
t.int({
|
||||
nullable: true,
|
||||
resolve: (parent) =>
|
||||
parent[name] === undefined ? undefined : Number(parent[name]),
|
||||
});
|
||||
const maybeFloatField = (name: keyof QualityIndicators) =>
|
||||
t.float({
|
||||
nullable: true,
|
||||
resolve: (parent) =>
|
||||
parent[name] === undefined ? undefined : Number(parent[name]),
|
||||
});
|
||||
|
||||
return {
|
||||
stars: t.exposeInt("stars", {
|
||||
description: "0 to 5",
|
||||
}),
|
||||
numForecasts: t.int({
|
||||
nullable: true,
|
||||
resolve: (parent) =>
|
||||
parent.numforecasts === undefined
|
||||
? undefined
|
||||
: Number(parent.numforecasts),
|
||||
}),
|
||||
}),
|
||||
numForecasts: maybeIntField("numforecasts"),
|
||||
numForecasters: maybeIntField("numforecasters"),
|
||||
volume: maybeFloatField("volume"),
|
||||
// yesBid: maybeNumberField("yes_bid"),
|
||||
// yesAsk: maybeNumberField("yes_ask"),
|
||||
spread: maybeFloatField("spread"),
|
||||
sharesVolume: maybeFloatField("shares_volume"),
|
||||
openInterest: maybeFloatField("open_interest"),
|
||||
liquidity: maybeFloatField("liquidity"),
|
||||
tradeVolume: maybeFloatField("trade_volume"),
|
||||
};
|
||||
},
|
||||
});
|
||||
|
||||
export const ProbabilityOptionObj = builder
|
||||
|
|
|
@ -15,9 +15,13 @@ export type Scalars = {
|
|||
};
|
||||
|
||||
export type CreateDashboardInput = {
|
||||
/** The creator of the dashboard, e.g. "Peter Parker" */
|
||||
creator?: InputMaybe<Scalars['String']>;
|
||||
/** The longer description of the dashboard */
|
||||
description?: InputMaybe<Scalars['String']>;
|
||||
/** List of question ids */
|
||||
ids: Array<Scalars['ID']>;
|
||||
/** The title of the dashboard */
|
||||
title: Scalars['String'];
|
||||
};
|
||||
|
||||
|
@ -28,15 +32,20 @@ export type CreateDashboardResult = {
|
|||
|
||||
export type Dashboard = {
|
||||
__typename?: 'Dashboard';
|
||||
/** The creator of the dashboard, e.g. "Peter Parker" */
|
||||
creator: Scalars['String'];
|
||||
/** The longer description of the dashboard */
|
||||
description: Scalars['String'];
|
||||
id: Scalars['ID'];
|
||||
/** The list of questions on the dashboard */
|
||||
questions: Array<Question>;
|
||||
/** The title of the dashboard */
|
||||
title: Scalars['String'];
|
||||
};
|
||||
|
||||
export type Mutation = {
|
||||
__typename?: 'Mutation';
|
||||
/** Create a new dashboard; if the dashboard with given ids already exists then it will be returned instead. */
|
||||
createDashboard: CreateDashboardResult;
|
||||
};
|
||||
|
||||
|
@ -53,31 +62,45 @@ export type PageInfo = {
|
|||
startCursor?: Maybe<Scalars['String']>;
|
||||
};
|
||||
|
||||
/** Platform supported by metaforecast */
|
||||
/** Forecasting platform supported by Metaforecast */
|
||||
export type Platform = {
|
||||
__typename?: 'Platform';
|
||||
/** Short unique platform name, e.g. "xrisk" */
|
||||
id: Scalars['ID'];
|
||||
/** Platform name for displaying on frontend etc., e.g. "X-risk estimates" */
|
||||
label: Scalars['String'];
|
||||
};
|
||||
|
||||
export type ProbabilityOption = {
|
||||
__typename?: 'ProbabilityOption';
|
||||
name?: Maybe<Scalars['String']>;
|
||||
/** 0 to 1 */
|
||||
probability?: Maybe<Scalars['Float']>;
|
||||
};
|
||||
|
||||
/** Various indicators of the question's quality */
|
||||
export type QualityIndicators = {
|
||||
__typename?: 'QualityIndicators';
|
||||
liquidity?: Maybe<Scalars['Float']>;
|
||||
numForecasters?: Maybe<Scalars['Int']>;
|
||||
numForecasts?: Maybe<Scalars['Int']>;
|
||||
openInterest?: Maybe<Scalars['Float']>;
|
||||
sharesVolume?: Maybe<Scalars['Float']>;
|
||||
spread?: Maybe<Scalars['Float']>;
|
||||
/** 0 to 5 */
|
||||
stars: Scalars['Int'];
|
||||
tradeVolume?: Maybe<Scalars['Float']>;
|
||||
volume?: Maybe<Scalars['Float']>;
|
||||
};
|
||||
|
||||
export type Query = {
|
||||
__typename?: 'Query';
|
||||
/** Look up a single dashboard by its id */
|
||||
dashboard: Dashboard;
|
||||
/** Get a list of questions that are currently on the frontpage */
|
||||
frontpage: Array<Question>;
|
||||
questions: QueryQuestionsConnection;
|
||||
/** Search for questions; uses Algolia instead of the primary metaforecast database */
|
||||
searchQuestions: Array<Question>;
|
||||
};
|
||||
|
||||
|
@ -114,20 +137,26 @@ export type QueryQuestionsConnectionEdge = {
|
|||
export type Question = {
|
||||
__typename?: 'Question';
|
||||
description: Scalars['String'];
|
||||
/** Unique string which identifies the question */
|
||||
id: Scalars['ID'];
|
||||
options: Array<ProbabilityOption>;
|
||||
platform: Platform;
|
||||
qualityIndicators: QualityIndicators;
|
||||
/** Timestamp at which metaforecast fetched the question */
|
||||
timestamp: Scalars['Date'];
|
||||
title: Scalars['String'];
|
||||
/** Non-unique, a very small number of platforms have a page for more than one prediction */
|
||||
url: Scalars['String'];
|
||||
visualization?: Maybe<Scalars['String']>;
|
||||
};
|
||||
|
||||
export type SearchInput = {
|
||||
/** List of platform ids to filter by */
|
||||
forecastingPlatforms?: InputMaybe<Array<Scalars['String']>>;
|
||||
/** Minimum number of forecasts on a question */
|
||||
forecastsThreshold?: InputMaybe<Scalars['Int']>;
|
||||
limit?: InputMaybe<Scalars['Int']>;
|
||||
query: Scalars['String'];
|
||||
/** Minimum number of stars on a question */
|
||||
starsThreshold?: InputMaybe<Scalars['Int']>;
|
||||
};
|
||||
|
|
|
@ -2,21 +2,21 @@ import * as Types from '../../graphql/types.generated';
|
|||
|
||||
import { TypedDocumentNode as DocumentNode } from '@graphql-typed-document-node/core';
|
||||
import { QuestionFragmentDoc } from '../search/queries.generated';
|
||||
export type DashboardFragment = { __typename?: 'Dashboard', id: string, title: string, description: string, creator: string, questions: Array<{ __typename?: 'Question', id: string, url: string, title: string, description: string, timestamp: number, visualization?: string | null, options: Array<{ __typename?: 'ProbabilityOption', name?: string | null, probability?: number | null }>, platform: { __typename?: 'Platform', id: string, label: string }, qualityIndicators: { __typename?: 'QualityIndicators', stars: number, numForecasts?: number | null } }> };
|
||||
export type DashboardFragment = { __typename?: 'Dashboard', id: string, title: string, description: string, creator: string, questions: Array<{ __typename?: 'Question', id: string, url: string, title: string, description: string, timestamp: number, visualization?: string | null, options: Array<{ __typename?: 'ProbabilityOption', name?: string | null, probability?: number | null }>, platform: { __typename?: 'Platform', id: string, label: string }, qualityIndicators: { __typename?: 'QualityIndicators', stars: number, numForecasts?: number | null, numForecasters?: number | null, volume?: number | null, spread?: number | null, sharesVolume?: number | null, openInterest?: number | null, liquidity?: number | null, tradeVolume?: number | null } }> };
|
||||
|
||||
export type DashboardByIdQueryVariables = Types.Exact<{
|
||||
id: Types.Scalars['ID'];
|
||||
}>;
|
||||
|
||||
|
||||
export type DashboardByIdQuery = { __typename?: 'Query', result: { __typename?: 'Dashboard', id: string, title: string, description: string, creator: string, questions: Array<{ __typename?: 'Question', id: string, url: string, title: string, description: string, timestamp: number, visualization?: string | null, options: Array<{ __typename?: 'ProbabilityOption', name?: string | null, probability?: number | null }>, platform: { __typename?: 'Platform', id: string, label: string }, qualityIndicators: { __typename?: 'QualityIndicators', stars: number, numForecasts?: number | null } }> } };
|
||||
export type DashboardByIdQuery = { __typename?: 'Query', result: { __typename?: 'Dashboard', id: string, title: string, description: string, creator: string, questions: Array<{ __typename?: 'Question', id: string, url: string, title: string, description: string, timestamp: number, visualization?: string | null, options: Array<{ __typename?: 'ProbabilityOption', name?: string | null, probability?: number | null }>, platform: { __typename?: 'Platform', id: string, label: string }, qualityIndicators: { __typename?: 'QualityIndicators', stars: number, numForecasts?: number | null, numForecasters?: number | null, volume?: number | null, spread?: number | null, sharesVolume?: number | null, openInterest?: number | null, liquidity?: number | null, tradeVolume?: number | null } }> } };
|
||||
|
||||
export type CreateDashboardMutationVariables = Types.Exact<{
|
||||
input: Types.CreateDashboardInput;
|
||||
}>;
|
||||
|
||||
|
||||
export type CreateDashboardMutation = { __typename?: 'Mutation', result: { __typename?: 'CreateDashboardResult', dashboard: { __typename?: 'Dashboard', id: string, title: string, description: string, creator: string, questions: Array<{ __typename?: 'Question', id: string, url: string, title: string, description: string, timestamp: number, visualization?: string | null, options: Array<{ __typename?: 'ProbabilityOption', name?: string | null, probability?: number | null }>, platform: { __typename?: 'Platform', id: string, label: string }, qualityIndicators: { __typename?: 'QualityIndicators', stars: number, numForecasts?: number | null } }> } } };
|
||||
export type CreateDashboardMutation = { __typename?: 'Mutation', result: { __typename?: 'CreateDashboardResult', dashboard: { __typename?: 'Dashboard', id: string, title: string, description: string, creator: string, questions: Array<{ __typename?: 'Question', id: string, url: string, title: string, description: string, timestamp: number, visualization?: string | null, options: Array<{ __typename?: 'ProbabilityOption', name?: string | null, probability?: number | null }>, platform: { __typename?: 'Platform', id: string, label: string }, qualityIndicators: { __typename?: 'QualityIndicators', stars: number, numForecasts?: number | null, numForecasters?: number | null, volume?: number | null, spread?: number | null, sharesVolume?: number | null, openInterest?: number | null, liquidity?: number | null, tradeVolume?: number | null } }> } } };
|
||||
|
||||
export const DashboardFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"Dashboard"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Dashboard"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"title"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"creator"}},{"kind":"Field","name":{"kind":"Name","value":"questions"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"Question"}}]}}]}},...QuestionFragmentDoc.definitions]} as unknown as DocumentNode<DashboardFragment, unknown>;
|
||||
export const DashboardByIdDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"DashboardById"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"id"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"ID"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","alias":{"kind":"Name","value":"result"},"name":{"kind":"Name","value":"dashboard"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"id"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"Dashboard"}}]}}]}},...DashboardFragmentDoc.definitions]} as unknown as DocumentNode<DashboardByIdQuery, DashboardByIdQueryVariables>;
|
||||
|
|
|
@ -1,7 +1,12 @@
|
|||
const formatQualityIndicator = (indicator) => {
|
||||
let result;
|
||||
import { QuestionFragment } from "../../search/queries.generated";
|
||||
|
||||
type QualityIndicator = QuestionFragment["qualityIndicators"];
|
||||
type IndicatorName = keyof QualityIndicator;
|
||||
|
||||
const formatQualityIndicator = (indicator: IndicatorName) => {
|
||||
let result: string | null = null;
|
||||
switch (indicator) {
|
||||
case "numforecasts":
|
||||
case "numForecasts":
|
||||
result = null;
|
||||
break;
|
||||
|
||||
|
@ -13,38 +18,38 @@ const formatQualityIndicator = (indicator) => {
|
|||
result = "Volume";
|
||||
break;
|
||||
|
||||
case "numforecasters":
|
||||
case "numForecasters":
|
||||
result = "Forecasters";
|
||||
break;
|
||||
|
||||
case "yes_bid":
|
||||
result = null; // "Yes bid"
|
||||
break;
|
||||
// case "yesBid":
|
||||
// result = null; // "Yes bid"
|
||||
// break;
|
||||
|
||||
case "yes_ask":
|
||||
result = null; // "Yes ask"
|
||||
break;
|
||||
// case "yesAsk":
|
||||
// result = null; // "Yes ask"
|
||||
// break;
|
||||
|
||||
case "spread":
|
||||
result = "Spread";
|
||||
break;
|
||||
case "shares_volume":
|
||||
case "sharesVolume":
|
||||
result = "Shares vol.";
|
||||
break;
|
||||
|
||||
case "open_interest":
|
||||
case "openInterest":
|
||||
result = "Interest";
|
||||
break;
|
||||
|
||||
case "resolution_data":
|
||||
result = null;
|
||||
break;
|
||||
// case "resolution_data":
|
||||
// result = null;
|
||||
// break;
|
||||
|
||||
case "liquidity":
|
||||
result = "Liquidity";
|
||||
break;
|
||||
|
||||
case "tradevolume":
|
||||
case "tradeVolume":
|
||||
result = "Volume";
|
||||
break;
|
||||
}
|
||||
|
@ -61,11 +66,11 @@ const formatNumber = (num) => {
|
|||
}
|
||||
};
|
||||
|
||||
const formatQualityIndicators = (qualityIndicators: any) => {
|
||||
let newQualityIndicators = {};
|
||||
for (let key in qualityIndicators) {
|
||||
let newKey = formatQualityIndicator(key);
|
||||
if (newKey) {
|
||||
const formatQualityIndicators = (qualityIndicators: QualityIndicator) => {
|
||||
let newQualityIndicators: { [k: string]: string | number } = {};
|
||||
for (const key of Object.keys(qualityIndicators)) {
|
||||
const newKey = formatQualityIndicator(key as IndicatorName);
|
||||
if (newKey && qualityIndicators[key] !== null) {
|
||||
newQualityIndicators[newKey] = qualityIndicators[key];
|
||||
}
|
||||
}
|
||||
|
@ -74,7 +79,13 @@ const formatQualityIndicators = (qualityIndicators: any) => {
|
|||
|
||||
/* Display functions*/
|
||||
|
||||
const getPercentageSymbolIfNeeded = ({ indicator, platform }) => {
|
||||
const getPercentageSymbolIfNeeded = ({
|
||||
indicator,
|
||||
platform,
|
||||
}: {
|
||||
indicator: string;
|
||||
platform: string;
|
||||
}) => {
|
||||
let indicatorsWhichNeedPercentageSymbol = ["Spread"];
|
||||
if (indicatorsWhichNeedPercentageSymbol.includes(indicator)) {
|
||||
return "%";
|
||||
|
@ -87,7 +98,7 @@ const getCurrencySymbolIfNeeded = ({
|
|||
indicator,
|
||||
platform,
|
||||
}: {
|
||||
indicator: any;
|
||||
indicator: string;
|
||||
platform: string;
|
||||
}) => {
|
||||
let indicatorsWhichNeedCurrencySymbol = ["Volume", "Interest", "Liquidity"];
|
||||
|
@ -137,7 +148,7 @@ const displayQualityIndicators: React.FC<{
|
|||
numforecasts: number;
|
||||
lastUpdated: Date;
|
||||
showTimeStamp: boolean;
|
||||
qualityindicators: any;
|
||||
qualityindicators: QuestionFragment["qualityIndicators"];
|
||||
platform: string; // id string - e.g. "goodjudgment", not "Good Judgment"
|
||||
}> = ({
|
||||
numforecasts,
|
||||
|
@ -237,7 +248,7 @@ interface Props {
|
|||
platform: string;
|
||||
platformLabel: string;
|
||||
numforecasts: any;
|
||||
qualityindicators: any;
|
||||
qualityindicators: QuestionFragment["qualityIndicators"];
|
||||
lastUpdated: Date;
|
||||
showTimeStamp: boolean;
|
||||
expandFooterToFullWidth: boolean;
|
||||
|
|
|
@ -1,20 +1,20 @@
|
|||
import * as Types from '../../graphql/types.generated';
|
||||
|
||||
import { TypedDocumentNode as DocumentNode } from '@graphql-typed-document-node/core';
|
||||
export type QuestionFragment = { __typename?: 'Question', id: string, url: string, title: string, description: string, timestamp: number, visualization?: string | null, options: Array<{ __typename?: 'ProbabilityOption', name?: string | null, probability?: number | null }>, platform: { __typename?: 'Platform', id: string, label: string }, qualityIndicators: { __typename?: 'QualityIndicators', stars: number, numForecasts?: number | null } };
|
||||
export type QuestionFragment = { __typename?: 'Question', id: string, url: string, title: string, description: string, timestamp: number, visualization?: string | null, options: Array<{ __typename?: 'ProbabilityOption', name?: string | null, probability?: number | null }>, platform: { __typename?: 'Platform', id: string, label: string }, qualityIndicators: { __typename?: 'QualityIndicators', stars: number, numForecasts?: number | null, numForecasters?: number | null, volume?: number | null, spread?: number | null, sharesVolume?: number | null, openInterest?: number | null, liquidity?: number | null, tradeVolume?: number | null } };
|
||||
|
||||
export type FrontpageQueryVariables = Types.Exact<{ [key: string]: never; }>;
|
||||
|
||||
|
||||
export type FrontpageQuery = { __typename?: 'Query', result: Array<{ __typename?: 'Question', id: string, url: string, title: string, description: string, timestamp: number, visualization?: string | null, options: Array<{ __typename?: 'ProbabilityOption', name?: string | null, probability?: number | null }>, platform: { __typename?: 'Platform', id: string, label: string }, qualityIndicators: { __typename?: 'QualityIndicators', stars: number, numForecasts?: number | null } }> };
|
||||
export type FrontpageQuery = { __typename?: 'Query', result: Array<{ __typename?: 'Question', id: string, url: string, title: string, description: string, timestamp: number, visualization?: string | null, options: Array<{ __typename?: 'ProbabilityOption', name?: string | null, probability?: number | null }>, platform: { __typename?: 'Platform', id: string, label: string }, qualityIndicators: { __typename?: 'QualityIndicators', stars: number, numForecasts?: number | null, numForecasters?: number | null, volume?: number | null, spread?: number | null, sharesVolume?: number | null, openInterest?: number | null, liquidity?: number | null, tradeVolume?: number | null } }> };
|
||||
|
||||
export type SearchQueryVariables = Types.Exact<{
|
||||
input: Types.SearchInput;
|
||||
}>;
|
||||
|
||||
|
||||
export type SearchQuery = { __typename?: 'Query', result: Array<{ __typename?: 'Question', id: string, url: string, title: string, description: string, timestamp: number, visualization?: string | null, options: Array<{ __typename?: 'ProbabilityOption', name?: string | null, probability?: number | null }>, platform: { __typename?: 'Platform', id: string, label: string }, qualityIndicators: { __typename?: 'QualityIndicators', stars: number, numForecasts?: number | null } }> };
|
||||
export type SearchQuery = { __typename?: 'Query', result: Array<{ __typename?: 'Question', id: string, url: string, title: string, description: string, timestamp: number, visualization?: string | null, options: Array<{ __typename?: 'ProbabilityOption', name?: string | null, probability?: number | null }>, platform: { __typename?: 'Platform', id: string, label: string }, qualityIndicators: { __typename?: 'QualityIndicators', stars: number, numForecasts?: number | null, numForecasters?: number | null, volume?: number | null, spread?: number | null, sharesVolume?: number | null, openInterest?: number | null, liquidity?: number | null, tradeVolume?: number | null } }> };
|
||||
|
||||
export const QuestionFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"Question"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Question"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"url"}},{"kind":"Field","name":{"kind":"Name","value":"title"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"timestamp"}},{"kind":"Field","name":{"kind":"Name","value":"options"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"probability"}}]}},{"kind":"Field","name":{"kind":"Name","value":"platform"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"label"}}]}},{"kind":"Field","name":{"kind":"Name","value":"qualityIndicators"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"stars"}},{"kind":"Field","name":{"kind":"Name","value":"numForecasts"}}]}},{"kind":"Field","name":{"kind":"Name","value":"visualization"}}]}}]} as unknown as DocumentNode<QuestionFragment, unknown>;
|
||||
export const QuestionFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"Question"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Question"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"url"}},{"kind":"Field","name":{"kind":"Name","value":"title"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"timestamp"}},{"kind":"Field","name":{"kind":"Name","value":"options"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"probability"}}]}},{"kind":"Field","name":{"kind":"Name","value":"platform"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"label"}}]}},{"kind":"Field","name":{"kind":"Name","value":"qualityIndicators"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"stars"}},{"kind":"Field","name":{"kind":"Name","value":"numForecasts"}},{"kind":"Field","name":{"kind":"Name","value":"numForecasters"}},{"kind":"Field","name":{"kind":"Name","value":"volume"}},{"kind":"Field","name":{"kind":"Name","value":"spread"}},{"kind":"Field","name":{"kind":"Name","value":"sharesVolume"}},{"kind":"Field","name":{"kind":"Name","value":"openInterest"}},{"kind":"Field","name":{"kind":"Name","value":"liquidity"}},{"kind":"Field","name":{"kind":"Name","value":"tradeVolume"}}]}},{"kind":"Field","name":{"kind":"Name","value":"visualization"}}]}}]} as unknown as DocumentNode<QuestionFragment, unknown>;
|
||||
export const FrontpageDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"Frontpage"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","alias":{"kind":"Name","value":"result"},"name":{"kind":"Name","value":"frontpage"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"Question"}}]}}]}},...QuestionFragmentDoc.definitions]} as unknown as DocumentNode<FrontpageQuery, FrontpageQueryVariables>;
|
||||
export const SearchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"Search"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"input"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"SearchInput"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","alias":{"kind":"Name","value":"result"},"name":{"kind":"Name","value":"searchQuestions"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"Variable","name":{"kind":"Name","value":"input"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"Question"}}]}}]}},...QuestionFragmentDoc.definitions]} as unknown as DocumentNode<SearchQuery, SearchQueryVariables>;
|
|
@ -15,6 +15,13 @@ fragment Question on Question {
|
|||
qualityIndicators {
|
||||
stars
|
||||
numForecasts
|
||||
numForecasters
|
||||
volume
|
||||
spread
|
||||
sharesVolume
|
||||
openInterest
|
||||
liquidity
|
||||
tradeVolume
|
||||
}
|
||||
visualization
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user