43 lines
632 B
Go
43 lines
632 B
Go
package qcode
|
|
|
|
func GetQType(gql string) QType {
|
|
for i := range gql {
|
|
b := gql[i]
|
|
if b == '{' {
|
|
return QTQuery
|
|
}
|
|
if al(b) {
|
|
switch b {
|
|
case 'm', 'M':
|
|
return QTMutation
|
|
case 'q', 'Q':
|
|
return QTQuery
|
|
}
|
|
}
|
|
}
|
|
return -1
|
|
}
|
|
|
|
func al(b byte) bool {
|
|
return (b >= 'a' && b <= 'z') || (b >= 'A' && b <= 'Z') || (b >= '0' && b <= '9')
|
|
}
|
|
|
|
func (qt QType) String() string {
|
|
switch qt {
|
|
case QTQuery:
|
|
return "query"
|
|
case QTMutation:
|
|
return "mutation"
|
|
case QTInsert:
|
|
return "insert"
|
|
case QTUpdate:
|
|
return "update"
|
|
case QTDelete:
|
|
return "delete"
|
|
case QTUpsert:
|
|
return "upsert"
|
|
}
|
|
|
|
return ""
|
|
}
|