Get saving request by url

This commit is contained in:
Hongbo Wu 2023-03-17 11:23:10 +08:00
parent fc662dd2d5
commit f9396450a5
4 changed files with 18 additions and 19 deletions

View file

@ -168,6 +168,7 @@ export type ArticleSavingRequest = {
slug: Scalars['String'];
status: ArticleSavingRequestStatus;
updatedAt: Scalars['Date'];
url: Scalars['String'];
user: User;
/** @deprecated userId has been replaced with user */
userId: Scalars['ID'];
@ -1751,7 +1752,7 @@ export type QueryArticleArgs = {
export type QueryArticleSavingRequestArgs = {
id: Scalars['ID'];
url: Scalars['String'];
};
@ -4194,6 +4195,7 @@ export type ArticleSavingRequestResolvers<ContextType = ResolverContext, ParentT
slug?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
status?: Resolver<ResolversTypes['ArticleSavingRequestStatus'], ParentType, ContextType>;
updatedAt?: Resolver<ResolversTypes['Date'], ParentType, ContextType>;
url?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
user?: Resolver<ResolversTypes['User'], ParentType, ContextType>;
userId?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
__isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
@ -5077,7 +5079,7 @@ export type ProfileResolvers<ContextType = ResolverContext, ParentType extends R
export type QueryResolvers<ContextType = ResolverContext, ParentType extends ResolversParentTypes['Query'] = ResolversParentTypes['Query']> = {
apiKeys?: Resolver<ResolversTypes['ApiKeysResult'], ParentType, ContextType>;
article?: Resolver<ResolversTypes['ArticleResult'], ParentType, ContextType, RequireFields<QueryArticleArgs, 'slug' | 'username'>>;
articleSavingRequest?: Resolver<ResolversTypes['ArticleSavingRequestResult'], ParentType, ContextType, RequireFields<QueryArticleSavingRequestArgs, 'id'>>;
articleSavingRequest?: Resolver<ResolversTypes['ArticleSavingRequestResult'], ParentType, ContextType, RequireFields<QueryArticleSavingRequestArgs, 'url'>>;
articles?: Resolver<ResolversTypes['ArticlesResult'], ParentType, ContextType, Partial<QueryArticlesArgs>>;
deviceTokens?: Resolver<ResolversTypes['DeviceTokensResult'], ParentType, ContextType>;
feedArticles?: Resolver<ResolversTypes['FeedArticlesResult'], ParentType, ContextType, Partial<QueryFeedArticlesArgs>>;

View file

@ -135,6 +135,7 @@ type ArticleSavingRequest {
slug: String!
status: ArticleSavingRequestStatus!
updatedAt: Date!
url: String!
user: User!
userId: ID! @deprecated(reason: "userId has been replaced with user")
}
@ -1245,7 +1246,7 @@ type Profile {
type Query {
apiKeys: ApiKeysResult!
article(format: String, slug: String!, username: String!): ArticleResult!
articleSavingRequest(id: ID!): ArticleSavingRequestResult!
articleSavingRequest(url: String!): ArticleSavingRequestResult!
articles(after: String, first: Int, includePending: Boolean, query: String, sharedOnly: Boolean, sort: SortParams): ArticlesResult!
deviceTokens: DeviceTokensResult!
feedArticles(after: String, first: Int, sharedByUser: ID, sort: SortParams): FeedArticlesResult!

View file

@ -1,4 +1,6 @@
/* eslint-disable prefer-const */
import { getPageByParam } from '../../elastic/pages'
import { env } from '../../env'
import {
ArticleSavingRequestError,
ArticleSavingRequestErrorCode,
@ -10,16 +12,14 @@ import {
MutationCreateArticleSavingRequestArgs,
QueryArticleSavingRequestArgs,
} from '../../generated/graphql'
import { createPageSaveRequest } from '../../services/create_page_save_request'
import { analytics } from '../../utils/analytics'
import {
authorized,
isParsingTimeout,
pageToArticleSavingRequest,
} from '../../utils/helpers'
import { createPageSaveRequest } from '../../services/create_page_save_request'
import { getPageById } from '../../elastic/pages'
import { isErrorWithCode } from '../user'
import { analytics } from '../../utils/analytics'
import { env } from '../../env'
export const createArticleSavingRequestResolver = authorized<
CreateArticleSavingRequestSuccess,
@ -56,17 +56,12 @@ export const articleSavingRequestResolver = authorized<
ArticleSavingRequestSuccess,
ArticleSavingRequestError,
QueryArticleSavingRequestArgs
>(async (_, { id }, { models }) => {
let page
let user
try {
page = await getPageById(id)
if (!page) {
return { errorCodes: [ArticleSavingRequestErrorCode.NotFound] }
}
user = await models.user.get(page.userId)
// eslint-disable-next-line no-empty
} catch (error) {}
>(async (_, { url }, { models, claims }) => {
const page = await getPageByParam({ url, userId: claims.uid })
if (!page) {
return { errorCodes: [ArticleSavingRequestErrorCode.NotFound] }
}
const user = await models.user.get(page.userId)
if (user && page) {
if (isParsingTimeout(page)) {
page.state = ArticleSavingRequestStatus.Succeeded

View file

@ -1074,6 +1074,7 @@ const schema = gql`
errorCode: CreateArticleErrorCode
createdAt: Date!
updatedAt: Date!
url: String!
}
# Query: ArticleSavingRequest
@ -2525,7 +2526,7 @@ const schema = gql`
getFollowers(userId: ID): GetFollowersResult!
getFollowing(userId: ID): GetFollowingResult!
getUserPersonalization: GetUserPersonalizationResult!
articleSavingRequest(id: ID!): ArticleSavingRequestResult!
articleSavingRequest(url: String!): ArticleSavingRequestResult!
newsletterEmails: NewsletterEmailsResult!
reminder(linkId: ID!): ReminderResult!
labels: LabelsResult!