---
title: modules/Service(except ServiceBase all of services are async)
---
classDiagram
ServiceBase --> models
ServiceBase <|-- apiKeys_service
ServiceBase <|-- apis_service
ServiceBase <|-- projects_service
ServiceBase <|-- services_service
ServiceBase <|-- users_service
ServiceBase <|-- gatewayLogs_service
ServiceBase <|-- ai_service
ServiceBase : create(data, transaction)
ServiceBase : bulkCreate(data) {
ServiceBase : find({ where, pagination, attributes, group, order, paranoid })
ServiceBase : findAndCount({ where, pagination, attributes, group, order, paranoid })
ServiceBase : findOne(where, attributes)
ServiceBase : updateOne(data, where, returning, transaction)
ServiceBase : deleteOne({ where, returning, transaction, force })
ServiceBase : findOrCreate({ where, defaults })
class models{
+generateModels()
+associations()
}
class apiKeys_service{
+findApiKey(clause)
+findAllApiKey(clause, limit, offs)
}
class gatewayLogs_service{
}
class apis_service{
+findApiKeyService(clause)
+findAllApis(clause, limit, offs)
+findAiServiceForApiKey(clause)
}
class projects_service{
+findProjectService(clause)
+findAllProjects(clause, limit, offs)
}
class services_service{
+findProjectService(clause)
+findService(name)
+findAllServices(clause, limit, offs)
}
class users_service{
+findUserApiKey(clause)
+findAllUsersApiKey(clause, role, limit, offs)
+findUserRole(id)
}
class ai_service{
+checkApi(req, res, next)
+checkProxyApi(req, res, next)
+checkValidApis(apis, method, originalUrl, baseName )
+checkValidServices( apis )
+adjustServiceAndBaseName(originalUrl, method)
+isImageExtension(url)
+validateApiMethods(accessAiService, method, originalUrl, baseName)
+getAccessAiService(apiKey, serviceName)
+validateAccessAiService(accessAiService)
+getServiceInfo(serviceName, method)
+saveFile(req, res, next)
+saveBase64(req, type, required, name )
+saveLink(req, name, required, next)
+writeFileStream( data, fileWriter, fileName, filePath )
+getCountTmp(accessAiService)
+isFileRequest(absolutePath, serviceName)
+validateMaxCountTpm(accessAiService)
+checkIp(req, res, next)
+proxyRequest(req)
+generateRedisKey(apiId)
+setRedisKey(key, value)
+updateCounts(value, apiId)
+buildRequestOptions(req)
+handleNonFileRequest(req,res,apiId,value,gatewayLogData)
+handleFileRequest(req,res,apiId,value,gatewayLogData)
+handleSRTProxyRequest(req,res,apiId,value,gatewayLogData)
}