This commit is contained in:
royalcat 2024-01-28 23:22:49 +03:00
parent 2cefb9db98
commit b97dcc8d8f
52 changed files with 7570 additions and 555 deletions

10
graphql/mutation.graphql Normal file
View file

@ -0,0 +1,10 @@
type Mutation {
validateTorrents(filter: TorrentFilter!): Boolean!
cleanupTorrents(files: Boolean, dryRun: Boolean!): Int!
}
input TorrentFilter @oneOf {
everything: Boolean
infohash: String
# pathGlob: String!
}

43
graphql/query.graphql Normal file
View file

@ -0,0 +1,43 @@
type Query {
torrents(filter: TorrentsFilter, pagination: Pagination): [Torrent!]!
}
input TorrentsFilter {
name: StringFilter
bytesCompleted: IntFilter
bytesMissing: IntFilter
peersCount: IntFilter
}
input Pagination {
offset: Int!
limit: Int!
}
input StringFilter @oneOf {
eq: String
substr: String
in: [String!]
}
input IntFilter @oneOf {
eq: Int
gt: Int
lt: Int
gte: Int
lte: Int
in: [Int!]
}
input DateTimeFilter @oneOf {
eq: DateTime
gt: DateTime
lt: DateTime
gte: DateTime
lte: DateTime
}
input BooleanFilter @oneOf {
eq: Boolean
}

9
graphql/schema.graphql Normal file
View file

@ -0,0 +1,9 @@
directive @oneOf on INPUT_OBJECT | FIELD_DEFINITION
scalar DateTime
type Schema {
query: Query
mutation: Mutation
}

View file

@ -0,0 +1,24 @@
type Torrent {
name: String!
infohash: String!
bytesCompleted: Int!
torrentFilePath: String!
bytesMissing: Int!
files: [TorrentFile!]!
excludedFiles: [TorrentFile!]!
peers: [TorrentPeer!]!
}
type TorrentFile {
filename: String!
size: Int!
bytesCompleted: Int!
}
type TorrentPeer {
ip: String!
downloadRate: Float!
discovery: String!
port: Int!
clientName: String!
}