manage
# 一个面向 前端/用户/调用者 的 type
type Query {
# users 接受1个必传参数 station_id,返回由 User type 组成的列表
users(station_id: String!): [User]
# roles 接受两个参数 partner_id 和 contain_role_name User type 组成的列表
roles(partner_id: String!, contain_role_name: String): [Role]
# role 接受一个必传参数 id,返回一个 Role type
role(id: ID!): Role!
# permissions 接受1个必传参数 partner_id,返回由 Permission type 组成的列表
permissions(partner_id: ID!): [Permission]
# permission 接受一个必传参数 id,返回一个 Permission type
permission(id: ID!): Permission
# stations 接受一个必传参数 partner_id,返回由 Station type 组成的列表
stations(partner_id: String) [Station]
}
type User {
id: ID
username: String
create_time: String
station_id: String
roles: [Role] # User type 有一个名为 roles 的属性,这个属性的值是一个由 Role type 组成的字典
}
type Role {
id: ID
name: String
users: [User]
partner_id: Station
description: String
permissions: [Permission]
create_time: Datetime
}
type Station {
id: ID
name: String
roles: [Role]
}
type Partner {
id: ID
name: String
roles: [Role]
users: [User]
}
type Permissions {
id: ID
name: String
permission_level2_class: PermissionLevel1Class
stations(partner_id: Int): [Station] # station_id 和 partner_id 最少传一个
roles(partner_id: Int): [Role] # station_id 和 partner_id 最少传一个
users(partner_id: Int): [User] # station_id 和 partner_id 最少传一个
}
type PermissionLevel1Class {
id: ID
name: String
}
type PermissionLevel2Class {
id: ID
name: String
permission_level1_class: PermissionLevel1Class
}