mirror of
https://github.com/omnivore-app/omnivore.git
synced 2026-03-11 08:54:26 +00:00
Add user and note to Recommendation type
This commit is contained in:
parent
81dd49d6af
commit
0892d9e7e6
7 changed files with 132 additions and 12 deletions
|
|
@ -198,9 +198,18 @@ export interface Highlight {
|
|||
highlightPositionAnchorIndex?: number | null
|
||||
}
|
||||
|
||||
export interface RecommendingUser {
|
||||
userId: string
|
||||
name: string
|
||||
username: string
|
||||
profileImageURL: string | null
|
||||
}
|
||||
|
||||
export interface Recommendation {
|
||||
id: string
|
||||
name: string
|
||||
note: string | null
|
||||
user: RecommendingUser
|
||||
recommendedAt: Date
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1787,6 +1787,7 @@ export enum RecommendErrorCode {
|
|||
|
||||
export type RecommendInput = {
|
||||
groupIds: Array<Scalars['ID']>;
|
||||
note?: InputMaybe<Scalars['String']>;
|
||||
pageId: Scalars['ID'];
|
||||
};
|
||||
|
||||
|
|
@ -1801,7 +1802,9 @@ export type Recommendation = {
|
|||
__typename?: 'Recommendation';
|
||||
id: Scalars['ID'];
|
||||
name: Scalars['String'];
|
||||
note?: Maybe<Scalars['String']>;
|
||||
recommendedAt: Scalars['Date'];
|
||||
user: RecommendingUser;
|
||||
};
|
||||
|
||||
export type RecommendationGroup = {
|
||||
|
|
@ -1815,6 +1818,14 @@ export type RecommendationGroup = {
|
|||
updatedAt: Scalars['Date'];
|
||||
};
|
||||
|
||||
export type RecommendingUser = {
|
||||
__typename?: 'RecommendingUser';
|
||||
name: Scalars['String'];
|
||||
profileImageURL?: Maybe<Scalars['String']>;
|
||||
userId: Scalars['String'];
|
||||
username: Scalars['String'];
|
||||
};
|
||||
|
||||
export type Reminder = {
|
||||
__typename?: 'Reminder';
|
||||
archiveUntil: Scalars['Boolean'];
|
||||
|
|
@ -3230,6 +3241,7 @@ export type ResolversTypes = {
|
|||
RecommendSuccess: ResolverTypeWrapper<RecommendSuccess>;
|
||||
Recommendation: ResolverTypeWrapper<Recommendation>;
|
||||
RecommendationGroup: ResolverTypeWrapper<RecommendationGroup>;
|
||||
RecommendingUser: ResolverTypeWrapper<RecommendingUser>;
|
||||
Reminder: ResolverTypeWrapper<Reminder>;
|
||||
ReminderError: ResolverTypeWrapper<ReminderError>;
|
||||
ReminderErrorCode: ReminderErrorCode;
|
||||
|
|
@ -3631,6 +3643,7 @@ export type ResolversParentTypes = {
|
|||
RecommendSuccess: RecommendSuccess;
|
||||
Recommendation: Recommendation;
|
||||
RecommendationGroup: RecommendationGroup;
|
||||
RecommendingUser: RecommendingUser;
|
||||
Reminder: Reminder;
|
||||
ReminderError: ReminderError;
|
||||
ReminderResult: ResolversParentTypes['ReminderError'] | ResolversParentTypes['ReminderSuccess'];
|
||||
|
|
@ -4836,7 +4849,9 @@ export type RecommendSuccessResolvers<ContextType = ResolverContext, ParentType
|
|||
export type RecommendationResolvers<ContextType = ResolverContext, ParentType extends ResolversParentTypes['Recommendation'] = ResolversParentTypes['Recommendation']> = {
|
||||
id?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
|
||||
name?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
|
||||
note?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
|
||||
recommendedAt?: Resolver<ResolversTypes['Date'], ParentType, ContextType>;
|
||||
user?: Resolver<ResolversTypes['RecommendingUser'], ParentType, ContextType>;
|
||||
__isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
|
||||
};
|
||||
|
||||
|
|
@ -4851,6 +4866,14 @@ export type RecommendationGroupResolvers<ContextType = ResolverContext, ParentTy
|
|||
__isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
|
||||
};
|
||||
|
||||
export type RecommendingUserResolvers<ContextType = ResolverContext, ParentType extends ResolversParentTypes['RecommendingUser'] = ResolversParentTypes['RecommendingUser']> = {
|
||||
name?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
|
||||
profileImageURL?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
|
||||
userId?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
|
||||
username?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
|
||||
__isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
|
||||
};
|
||||
|
||||
export type ReminderResolvers<ContextType = ResolverContext, ParentType extends ResolversParentTypes['Reminder'] = ResolversParentTypes['Reminder']> = {
|
||||
archiveUntil?: Resolver<ResolversTypes['Boolean'], ParentType, ContextType>;
|
||||
id?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
|
||||
|
|
@ -5718,6 +5741,7 @@ export type Resolvers<ContextType = ResolverContext> = {
|
|||
RecommendSuccess?: RecommendSuccessResolvers<ContextType>;
|
||||
Recommendation?: RecommendationResolvers<ContextType>;
|
||||
RecommendationGroup?: RecommendationGroupResolvers<ContextType>;
|
||||
RecommendingUser?: RecommendingUserResolvers<ContextType>;
|
||||
Reminder?: ReminderResolvers<ContextType>;
|
||||
ReminderError?: ReminderErrorResolvers<ContextType>;
|
||||
ReminderResult?: ReminderResultResolvers<ContextType>;
|
||||
|
|
|
|||
|
|
@ -1250,6 +1250,7 @@ enum RecommendErrorCode {
|
|||
|
||||
input RecommendInput {
|
||||
groupIds: [ID!]!
|
||||
note: String
|
||||
pageId: ID!
|
||||
}
|
||||
|
||||
|
|
@ -1262,7 +1263,9 @@ type RecommendSuccess {
|
|||
type Recommendation {
|
||||
id: ID!
|
||||
name: String!
|
||||
note: String
|
||||
recommendedAt: Date!
|
||||
user: RecommendingUser!
|
||||
}
|
||||
|
||||
type RecommendationGroup {
|
||||
|
|
@ -1275,6 +1278,13 @@ type RecommendationGroup {
|
|||
updatedAt: Date!
|
||||
}
|
||||
|
||||
type RecommendingUser {
|
||||
name: String!
|
||||
profileImageURL: String
|
||||
userId: String!
|
||||
username: String!
|
||||
}
|
||||
|
||||
type Reminder {
|
||||
archiveUntil: Boolean!
|
||||
id: ID!
|
||||
|
|
|
|||
|
|
@ -146,8 +146,9 @@ export const recommendResolver = authorized<
|
|||
})
|
||||
|
||||
try {
|
||||
const user = await getRepository(User).findOneBy({
|
||||
id: uid,
|
||||
const user = await getRepository(User).findOne({
|
||||
where: { id: uid },
|
||||
relations: ['profile'],
|
||||
})
|
||||
if (!user) {
|
||||
return {
|
||||
|
|
@ -185,6 +186,13 @@ export const recommendResolver = authorized<
|
|||
page.id,
|
||||
{
|
||||
...group,
|
||||
note: input.note ?? null,
|
||||
user: {
|
||||
userId: user.id,
|
||||
name: user.name,
|
||||
username: user.profile.username,
|
||||
profileImageURL: user.profile.pictureUrl,
|
||||
},
|
||||
recommendedAt: new Date(),
|
||||
},
|
||||
auth
|
||||
|
|
@ -198,6 +206,7 @@ export const recommendResolver = authorized<
|
|||
taskNames,
|
||||
}
|
||||
} catch (error) {
|
||||
console.log('Error recommending: ', error)
|
||||
log.error('Error recommending', {
|
||||
error,
|
||||
labels: {
|
||||
|
|
|
|||
|
|
@ -329,10 +329,19 @@ const schema = gql`
|
|||
updatedAt: Date!
|
||||
}
|
||||
|
||||
type RecommendingUser {
|
||||
userId: String!
|
||||
name: String!
|
||||
username: String!
|
||||
profileImageURL: String
|
||||
}
|
||||
|
||||
type Recommendation {
|
||||
id: ID!
|
||||
name: String!
|
||||
user: RecommendingUser
|
||||
recommendedAt: Date!
|
||||
note: String
|
||||
}
|
||||
|
||||
type Article {
|
||||
|
|
@ -2194,6 +2203,7 @@ const schema = gql`
|
|||
input RecommendInput {
|
||||
pageId: ID!
|
||||
groupIds: [ID!]!
|
||||
note: String
|
||||
}
|
||||
|
||||
union RecommendResult = RecommendSuccess | RecommendError
|
||||
|
|
|
|||
|
|
@ -7,13 +7,19 @@
|
|||
"analyzer": {
|
||||
"strip_html_analyzer": {
|
||||
"tokenizer": "standard",
|
||||
"char_filter": ["html_strip"],
|
||||
"filter": ["lowercase"]
|
||||
"char_filter": [
|
||||
"html_strip"
|
||||
],
|
||||
"filter": [
|
||||
"lowercase"
|
||||
]
|
||||
}
|
||||
},
|
||||
"normalizer": {
|
||||
"lowercase_normalizer": {
|
||||
"filter": ["lowercase"]
|
||||
"filter": [
|
||||
"lowercase"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -173,9 +179,31 @@
|
|||
},
|
||||
"recommendedAt": {
|
||||
"type": "date"
|
||||
},
|
||||
"note": {
|
||||
"type": "keyword"
|
||||
},
|
||||
"user": {
|
||||
"type": "nested",
|
||||
"properties": {
|
||||
"userID": {
|
||||
"type": "keyword"
|
||||
},
|
||||
"name": {
|
||||
"type": "keyword",
|
||||
"normalizer": "lowercase_normalizer"
|
||||
},
|
||||
"username": {
|
||||
"type": "keyword",
|
||||
"normalizer": "lowercase_normalizer"
|
||||
},
|
||||
"profileImageURL": {
|
||||
"type": "keyword"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -80,8 +80,24 @@ export type LibraryItemNode = {
|
|||
state: State
|
||||
pageType: PageType
|
||||
siteName?: string
|
||||
subscription?: string,
|
||||
subscription?: string
|
||||
readAt?: string
|
||||
recommendedBy?: Recommendation[]
|
||||
}
|
||||
|
||||
export type Recommendation = {
|
||||
id: string
|
||||
name: string
|
||||
note?: string
|
||||
user?: RecommendingUser
|
||||
recommendedAt: Date
|
||||
}
|
||||
|
||||
export type RecommendingUser = {
|
||||
userId: string
|
||||
name: string
|
||||
username: string
|
||||
profileImageURL?: string
|
||||
}
|
||||
|
||||
export type PageInfo = {
|
||||
|
|
@ -135,6 +151,18 @@ export function useGetLibraryItemsQuery({
|
|||
siteName
|
||||
subscription
|
||||
readAt
|
||||
recommendedBy {
|
||||
id
|
||||
name
|
||||
note
|
||||
user {
|
||||
userId
|
||||
name
|
||||
username
|
||||
profileImageURL
|
||||
}
|
||||
recommendedAt
|
||||
}
|
||||
}
|
||||
}
|
||||
pageInfo {
|
||||
|
|
@ -198,7 +226,7 @@ export function useGetLibraryItemsQuery({
|
|||
}
|
||||
|
||||
const getIndexOf = (page: LibraryItems, item: LibraryItem) => {
|
||||
return page.edges.findIndex(i => i.node.id === item.node.id)
|
||||
return page.edges.findIndex((i) => i.node.id === item.node.id)
|
||||
}
|
||||
|
||||
const performActionOnItem = async (
|
||||
|
|
@ -329,7 +357,9 @@ export function useGetLibraryItemsQuery({
|
|||
})
|
||||
unsubscribeMutation(item.node.subscription).then((res) => {
|
||||
if (res) {
|
||||
showSuccessToast('Unsubscribed successfully', { position: 'bottom-right' })
|
||||
showSuccessToast('Unsubscribed successfully', {
|
||||
position: 'bottom-right',
|
||||
})
|
||||
} else {
|
||||
showErrorToast('Error unsubscribing', {
|
||||
position: 'bottom-right',
|
||||
|
|
@ -337,8 +367,8 @@ export function useGetLibraryItemsQuery({
|
|||
}
|
||||
})
|
||||
}
|
||||
case 'update-item':
|
||||
updateData(item)
|
||||
case 'update-item':
|
||||
updateData(item)
|
||||
break
|
||||
case 'refresh':
|
||||
await mutate()
|
||||
|
|
@ -353,6 +383,6 @@ export function useGetLibraryItemsQuery({
|
|||
performActionOnItem,
|
||||
size,
|
||||
setSize,
|
||||
mutate
|
||||
mutate,
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue