add active and inactive review request for user query
This commit is contained in:
@@ -9,5 +9,16 @@ module Types
|
||||
field :email, String, null: false
|
||||
field :roles, [Enums::RoleEnum], null: false
|
||||
field :avatar_url, String, null: true
|
||||
|
||||
field :inactive_review_requests, Types::ReviewRequestType.connection_type, null: false
|
||||
field :active_review_requests, Types::ReviewRequestType.connection_type, null: false
|
||||
|
||||
def inactive_review_requests
|
||||
object.review_requests.inactive
|
||||
end
|
||||
|
||||
def active_review_requests
|
||||
object.review_requests.active
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
47
app/javascript/__generated__/graphql-schema.ts
generated
47
app/javascript/__generated__/graphql-schema.ts
generated
@@ -402,6 +402,35 @@ export type ReviewMessageInput = {
|
||||
text: Scalars['String'];
|
||||
};
|
||||
|
||||
export type ReviewRequest = {
|
||||
__typename?: 'ReviewRequest';
|
||||
answered: Scalars['Boolean'];
|
||||
id: Scalars['ID'];
|
||||
question: Question;
|
||||
user: User;
|
||||
};
|
||||
|
||||
/** The connection type for ReviewRequest. */
|
||||
export type ReviewRequestConnection = {
|
||||
__typename?: 'ReviewRequestConnection';
|
||||
/** A list of edges. */
|
||||
edges: Array<ReviewRequestEdge>;
|
||||
/** A list of nodes. */
|
||||
nodes: Array<ReviewRequest>;
|
||||
/** Information to aid in pagination. */
|
||||
pageInfo: PageInfo;
|
||||
totalCount: Scalars['Int'];
|
||||
};
|
||||
|
||||
/** An edge in a connection. */
|
||||
export type ReviewRequestEdge = {
|
||||
__typename?: 'ReviewRequestEdge';
|
||||
/** A cursor for use in pagination. */
|
||||
cursor: Scalars['String'];
|
||||
/** The item at the end of the edge. */
|
||||
node?: Maybe<ReviewRequest>;
|
||||
};
|
||||
|
||||
export type Subject = {
|
||||
__typename?: 'Subject';
|
||||
axis: Axis;
|
||||
@@ -460,13 +489,31 @@ export type UpdateQuestionPayload = {
|
||||
|
||||
export type User = {
|
||||
__typename?: 'User';
|
||||
activeReviewRequests: ReviewRequestConnection;
|
||||
avatarUrl?: Maybe<Scalars['String']>;
|
||||
email: Scalars['String'];
|
||||
id: Scalars['ID'];
|
||||
inactiveReviewRequests: ReviewRequestConnection;
|
||||
name: Scalars['String'];
|
||||
roles: Array<UserRole>;
|
||||
};
|
||||
|
||||
|
||||
export type UserActiveReviewRequestsArgs = {
|
||||
after?: InputMaybe<Scalars['String']>;
|
||||
before?: InputMaybe<Scalars['String']>;
|
||||
first?: InputMaybe<Scalars['Int']>;
|
||||
last?: InputMaybe<Scalars['Int']>;
|
||||
};
|
||||
|
||||
|
||||
export type UserInactiveReviewRequestsArgs = {
|
||||
after?: InputMaybe<Scalars['String']>;
|
||||
before?: InputMaybe<Scalars['String']>;
|
||||
first?: InputMaybe<Scalars['Int']>;
|
||||
last?: InputMaybe<Scalars['Int']>;
|
||||
};
|
||||
|
||||
/** The connection type for User. */
|
||||
export type UserConnection = {
|
||||
__typename?: 'UserConnection';
|
||||
|
||||
85
app/javascript/__generated__/schema.graphql
generated
85
app/javascript/__generated__/schema.graphql
generated
@@ -526,6 +526,49 @@ input ReviewMessageInput {
|
||||
text: String!
|
||||
}
|
||||
|
||||
type ReviewRequest {
|
||||
answered: Boolean!
|
||||
id: ID!
|
||||
question: Question!
|
||||
user: User!
|
||||
}
|
||||
|
||||
"""
|
||||
The connection type for ReviewRequest.
|
||||
"""
|
||||
type ReviewRequestConnection {
|
||||
"""
|
||||
A list of edges.
|
||||
"""
|
||||
edges: [ReviewRequestEdge!]!
|
||||
|
||||
"""
|
||||
A list of nodes.
|
||||
"""
|
||||
nodes: [ReviewRequest!]!
|
||||
|
||||
"""
|
||||
Information to aid in pagination.
|
||||
"""
|
||||
pageInfo: PageInfo!
|
||||
totalCount: Int!
|
||||
}
|
||||
|
||||
"""
|
||||
An edge in a connection.
|
||||
"""
|
||||
type ReviewRequestEdge {
|
||||
"""
|
||||
A cursor for use in pagination.
|
||||
"""
|
||||
cursor: String!
|
||||
|
||||
"""
|
||||
The item at the end of the edge.
|
||||
"""
|
||||
node: ReviewRequest
|
||||
}
|
||||
|
||||
type Subject {
|
||||
axis: Axis!
|
||||
category: Category!
|
||||
@@ -619,9 +662,51 @@ type UpdateQuestionPayload {
|
||||
}
|
||||
|
||||
type User {
|
||||
activeReviewRequests(
|
||||
"""
|
||||
Returns the elements in the list that come after the specified cursor.
|
||||
"""
|
||||
after: String
|
||||
|
||||
"""
|
||||
Returns the elements in the list that come before the specified cursor.
|
||||
"""
|
||||
before: String
|
||||
|
||||
"""
|
||||
Returns the first _n_ elements from the list.
|
||||
"""
|
||||
first: Int
|
||||
|
||||
"""
|
||||
Returns the last _n_ elements from the list.
|
||||
"""
|
||||
last: Int
|
||||
): ReviewRequestConnection!
|
||||
avatarUrl: String
|
||||
email: String!
|
||||
id: ID!
|
||||
inactiveReviewRequests(
|
||||
"""
|
||||
Returns the elements in the list that come after the specified cursor.
|
||||
"""
|
||||
after: String
|
||||
|
||||
"""
|
||||
Returns the elements in the list that come before the specified cursor.
|
||||
"""
|
||||
before: String
|
||||
|
||||
"""
|
||||
Returns the first _n_ elements from the list.
|
||||
"""
|
||||
first: Int
|
||||
|
||||
"""
|
||||
Returns the last _n_ elements from the list.
|
||||
"""
|
||||
last: Int
|
||||
): ReviewRequestConnection!
|
||||
name: String!
|
||||
roles: [UserRole!]!
|
||||
}
|
||||
|
||||
@@ -34,8 +34,9 @@ export const QuestionsWaitingReviewQuery: FC<Props> = ({ title }) => {
|
||||
const [pageInfo, setPageInfo] = useState<PageInfo | undefined>()
|
||||
|
||||
const updateQuestions = (queryResult: Query) => {
|
||||
const { currentUser } = queryResult
|
||||
const { activeReviewRequests } = currentUser as User
|
||||
if (!queryResult.currentUser) return
|
||||
|
||||
const { activeReviewRequests } = queryResult.currentUser
|
||||
const reviewRequests = activeReviewRequests.nodes as ReviewRequest[]
|
||||
|
||||
setQuestions(reviewRequests.map(item => item.question))
|
||||
|
||||
@@ -22,4 +22,7 @@
|
||||
class ReviewRequest < ApplicationRecord
|
||||
belongs_to :question
|
||||
belongs_to :user
|
||||
|
||||
scope :active, -> { where(answered: false) }
|
||||
scope :inactive, -> { where(answered: true) }
|
||||
end
|
||||
|
||||
@@ -24,6 +24,8 @@ class User < ApplicationRecord
|
||||
include Trashable
|
||||
extend Enumerize
|
||||
|
||||
has_many :review_requests, dependent: :destroy
|
||||
|
||||
devise :database_authenticatable,
|
||||
:recoverable,
|
||||
:rememberable,
|
||||
|
||||
Reference in New Issue
Block a user