stacker.news/api/typeDefs/user.js

199 lines
4.9 KiB
JavaScript
Raw Normal View History

import { gql } from 'graphql-tag'
2021-03-25 19:29:24 +00:00
export default gql`
extend type Query {
2023-10-23 23:19:36 +00:00
me: User
2022-06-02 22:55:23 +00:00
settings: User
2021-05-21 22:32:21 +00:00
user(name: String!): User
2021-03-25 19:29:24 +00:00
users: [User!]
2021-05-21 22:32:21 +00:00
nameAvailable(name: String!): Boolean!
topUsers(cursor: String, when: String, from: String, to: String, by: String, limit: Limit): UsersNullable!
topCowboys(cursor: String): UsersNullable!
2023-11-22 16:30:43 +00:00
searchUsers(q: String!, limit: Limit, similarity: Float): [User!]!
userSuggestions(q: String, limit: Limit): [User!]!
hasNewNotes: Boolean!
mySubscribedUsers(cursor: String): Users!
myMutedUsers(cursor: String): Users!
userStatsActions(when: String, from: String, to: String): [TimeData!]!
userStatsIncomingSats(when: String, from: String, to: String): [TimeData!]!
userStatsOutgoingSats(when: String, from: String, to: String): [TimeData!]!
2021-12-17 00:01:02 +00:00
}
type UsersNullable {
cursor: String
users: [User]!
}
2021-12-17 00:01:02 +00:00
type Users {
cursor: String
users: [User!]!
2021-03-25 19:29:24 +00:00
}
2021-05-22 00:09:11 +00:00
extend type Mutation {
setName(name: String!): String
2023-11-10 01:05:35 +00:00
setSettings(settings: SettingsInput!): User
2022-05-16 20:51:22 +00:00
setPhoto(photoId: ID!): Int!
2021-09-24 21:28:21 +00:00
upsertBio(bio: String!): User!
2021-12-09 20:40:40 +00:00
setWalkthrough(tipPopover: Boolean, upvotePopover: Boolean): Boolean
2022-06-02 22:55:23 +00:00
unlinkAuth(authType: String!): AuthMethods!
linkUnverifiedEmail(email: String!): Boolean
hideWelcomeBanner: Boolean
subscribeUserPosts(id: ID): User
subscribeUserComments(id: ID): User
2023-09-28 20:02:25 +00:00
toggleMute(id: ID): User
generateApiKey(id: ID!): String
deleteApiKey(id: ID!): User
2022-06-02 22:55:23 +00:00
}
2021-03-25 19:29:24 +00:00
type User {
id: ID!
2023-07-27 00:18:42 +00:00
createdAt: Date!
2021-03-25 19:29:24 +00:00
name: String
nitems(when: String, from: String, to: String): Int!
nposts(when: String, from: String, to: String): Int!
nterritories(when: String, from: String, to: String): Int!
ncomments(when: String, from: String, to: String): Int!
2021-09-23 17:42:00 +00:00
bio: Item
2022-04-28 18:11:05 +00:00
bioId: Int
2022-05-16 20:51:22 +00:00
photoId: Int
2023-06-03 00:55:45 +00:00
since: Int
2023-11-10 01:05:35 +00:00
optional: UserOptional!
privates: UserPrivates
meMute: Boolean!
meSubscriptionPosts: Boolean!
meSubscriptionComments: Boolean!
}
input SettingsInput {
autoDropBolt11s: Boolean!
diagnostics: Boolean!
noReferralLinks: Boolean!
2023-11-10 01:05:35 +00:00
fiatCurrency: String!
greeterMode: Boolean!
hideBookmarks: Boolean!
hideCowboyHat: Boolean!
hideGithub: Boolean!
hideNostr: Boolean!
hideTwitter: Boolean!
2023-11-10 01:05:35 +00:00
hideFromTopUsers: Boolean!
hideInvoiceDesc: Boolean!
hideIsContributor: Boolean!
hideWalletBalance: Boolean!
imgproxyOnly: Boolean!
nostrCrossposting: Boolean!
2023-11-10 01:05:35 +00:00
nostrPubkey: String
nostrRelays: [String!]
2022-04-21 22:50:02 +00:00
noteAllDescendants: Boolean!
2023-11-10 01:05:35 +00:00
noteCowboyHat: Boolean!
2024-03-25 20:20:11 +00:00
noteDeposits: Boolean!,
noteWithdrawals: Boolean!,
2023-11-10 01:05:35 +00:00
noteEarning: Boolean!
noteForwardedSats: Boolean!
2022-04-21 22:50:02 +00:00
noteInvites: Boolean!
2023-11-10 01:05:35 +00:00
noteItemSats: Boolean!
noteJobIndicator: Boolean!
2023-11-10 01:05:35 +00:00
noteMentions: Boolean!
nsfwMode: Boolean!
2023-11-10 01:05:35 +00:00
tipDefault: Int!
turboTipping: Boolean!
2024-03-25 00:46:12 +00:00
zapUndos: Int
2023-11-10 01:05:35 +00:00
wildWestMode: Boolean!
withdrawMaxFeeDefault: Int!
}
type AuthMethods {
lightning: Boolean!
nostr: Boolean!
github: Boolean!
twitter: Boolean!
email: String
2024-03-28 17:34:14 +00:00
apiKey: Boolean
2023-11-10 01:05:35 +00:00
}
type UserPrivates {
"""
extremely sensitive
"""
sats: Int!
authMethods: AuthMethods!
2024-01-07 17:00:24 +00:00
lnAddr: String
2023-11-10 01:05:35 +00:00
"""
only relevant to user
"""
lastCheckedJobs: String
hideWelcomeBanner: Boolean!
tipPopover: Boolean!
upvotePopover: Boolean!
hasInvites: Boolean!
apiKeyEnabled: Boolean!
2023-11-10 01:05:35 +00:00
"""
mirrors SettingsInput
"""
autoDropBolt11s: Boolean!
2023-11-10 01:05:35 +00:00
diagnostics: Boolean!
noReferralLinks: Boolean!
2023-11-10 01:05:35 +00:00
fiatCurrency: String!
greeterMode: Boolean!
hideBookmarks: Boolean!
2023-11-10 01:05:35 +00:00
hideCowboyHat: Boolean!
hideGithub: Boolean!
hideNostr: Boolean!
hideTwitter: Boolean!
2023-11-10 01:05:35 +00:00
hideFromTopUsers: Boolean!
hideInvoiceDesc: Boolean!
hideIsContributor: Boolean!
hideWalletBalance: Boolean!
imgproxyOnly: Boolean!
2023-11-10 01:05:35 +00:00
nostrCrossposting: Boolean!
nostrPubkey: String
nostrRelays: [String!]
noteAllDescendants: Boolean!
noteCowboyHat: Boolean!
noteDeposits: Boolean!
2024-03-25 20:20:11 +00:00
noteWithdrawals: Boolean!
2023-11-10 01:05:35 +00:00
noteEarning: Boolean!
noteForwardedSats: Boolean!
noteInvites: Boolean!
noteItemSats: Boolean!
noteJobIndicator: Boolean!
noteMentions: Boolean!
nsfwMode: Boolean!
2023-11-10 01:05:35 +00:00
tipDefault: Int!
turboTipping: Boolean!
2024-03-25 00:46:12 +00:00
zapUndos: Int
2022-09-21 19:57:36 +00:00
wildWestMode: Boolean!
2023-11-10 01:05:35 +00:00
withdrawMaxFeeDefault: Int!
2024-01-07 17:00:24 +00:00
autoWithdrawThreshold: Int
2024-01-13 05:47:05 +00:00
autoWithdrawMaxFeePercent: Float
2023-11-10 01:05:35 +00:00
}
type UserOptional {
"""
conditionally private
"""
stacked(when: String, from: String, to: String): Int
spent(when: String, from: String, to: String): Int
referrals(when: String, from: String, to: String): Int
streak: Int
maxStreak: Int
isContributor: Boolean
githubId: String
twitterId: String
nostrAuthPubkey: String
2021-03-25 19:29:24 +00:00
}
type NameValue {
name: String!
value: Float!
}
type TimeData {
time: Date!
data: [NameValue!]!
}
2021-03-25 19:29:24 +00:00
`