Package: lins-mindsetrequests
Mindset RequestsPacote para consumo dos endpoints daApi Mindset.Variáveis de ambienteEste projeto depende das variáveis de ambiente abaixo.API_INTEGRACAO_URL="http://api-mindset-url"API_INTEGRACAO_USERNAME="api-mindset-username"API_INTEGRACAO_PASSWORD="api-mindset-password"DATA_PADRAO_INTEGRACAO="2020-04-01T00:00:00.000"REQUEST_TIMEOUT="5"# Inteiro. Define o tempo máximo de espera pela resposta (opcional). Se não definida o padrão são 5 segundos.ServicoMódulo responsável pelas operações no endpointservico>>>frommindset.api_requestsimportServico>>>servico=Servico('novo_servico')servico.get_or_create(service_params={})service_params:dict (opcional)Exceto pelofiltrar, todos os métodos da classe dependem da chamada anterior do.get_or_create()Caso oservice_paramsnão seja informado, e o serviço não exista o mesmo será criado com os seguintes dados:self.service_params={'servico':self.nome_servico,# 'novo_servico''hora_agendamento':'01:00','forcar_execucao':True,'ativo':True,'tipo':'entrada',}Se informado os dados acima serão atualizados e o serviço criado.>>>response,json=servico.get_or_create()# <-- REQUIREMENT: Chamar a função get or create.>>>json>>>{'_id':'5fad3131ede2d05c6f5ba65d','servico':'teste','hora_agendamento':'01:00:00','forcar_execucao':True,'ativo':True,'tipo':'entrada'}Essa função retorna uma tupla(response, json)pois quando o servico existe, o json retorna em uma lista e quando é criado retorna um json. Internamente, o método trabalha para retornar o json.servico.filtrar(filter_params={})Método estáticofilter_params:dict (opcional)>>>len(Servico.filtrar().json())# Sem o filter params, retorna todos os servicos>>>25>>>response=servico.filtrar({'forcar_execucao':False,'servico':'minmaxitem-GANG'})>>>response.json()>>>[{'_id':'5fabf3cfd96a08315416997b','servico':'minmaxitem-GANG','hora_agendamento':'01:00:00','forcar_execucao':False,'ativo':True,'tipo':'entrada'}]Para mais informações dos filtros, consulteMindset Servicos.servico.get_id()Retorna o id do servico>>>servico.get_id()>>>'5fac5958d96a0831541699ca'servico.forcar_execucao()Retorna se a execução forçada do servico é True ou False>>>servico.forcar_execucao()>>>Trueservico.inicia_integracao()Define o status do servico como "E" (execução).>>>response=servico.inicia_integracao()>>>response.json()>>>{'data':'Status do Serviço definido como "E"!'}Retorna 400 se o status já está definido como "E">>>response=servico.inicia_integracao()>>>response.json()>>>{'code':400,'error_code':'invalid','message':'Entrada inválida.','data':{'general':['Processo de Integração já está em execução!']}}servico.sucesso_integracao()Define o status do servico como "S" (sucesso).>>>response=servico.sucesso_integracao()>>>response.json()>>>{'data':'Status do Serviço definido como "S"!'}Retorna 400 se o servico não está setado como "E".>>>response=servico.sucesso_integracao()>>>response.json()>>>{'code':400,'error_code':'invalid','message':'Entrada inválida.','data':{'general':['Processo de Integração não está em execução!']}}servico.falha_integracao()Define o status do servico como "F" (falha).>>>response=servico.falha_integracao()>>>response.json()>>>{'data':'Status do Serviço definido como "F"!'}Retorna 400 se o servico não está setado como "E".>>>response=servico.falha_integracao()>>>response.json()>>>{'code':400,'error_code':'invalid','message':'Entrada inválida.','data':{'general':['Processo de Integração não está em execução!']}}servico.get_data_ultima_integracao(filter_params={})Busca, trata e retorna a data da última integração do serviço ou o valor da variável de ambienteDATA_PADRAO_INTEGRACAO.filter_params:dict(opcional)Este método possui esses valores de busca padrão:{'_id_servico':self.id,# busca id do servico pela função get_id()'status':'S','fields':'inicio_execucao','sort':'-inicio_execucao','per_page':1,}Caso queira modificar, informe os parâmetros no filter_params e os dados acima serão atualizados.>>>query_params.get_data_ultima_integracao()>>>'2020-11-12T00:00:00'servico.update(json)Atualiza dados do servico.>>>response,json=servico.get_or_create()>>>json>>>{'_id':'5fac5958d96a0831541699ca','servico':'teste','hora_agendamento':'01:00:00','forcar_execucao':False,'ativo':True,'tipo':'entrada'}>>>response=servico.update({'forcar_execucao':True,'hora_agendamento':'02:00:00'})>>>response.json()>>>{'_id':'5fac5958d96a0831541699ca','servico':'teste','hora_agendamento':'02:00:00','forcar_execucao':True,'ativo':True,'tipo':'entrada'}servico.delete()Remove servico.>>>response=servico.delete()>>>response.json()>>>{'data':'Serviço deletado com sucesso.'}servico.status()Retorna todos os status do serviço>>>response=servico.status()>>>response.json()>>>[{'_id':'5fad8dc2ca8d874caa8154e0','_id_servico':'5fad8dc1ca8d874caa8154de','inicio_execucao':'2020-11-12T19:32:18.312000','fim_execucao':'2020-11-12T19:32:18.506000','status':'S'}]servico.em_execucao()Retorna se o servico está definido como "em execução".>>>servico.em_execucao()>>>False>>>servico.inicia_integracao()>>><Response[200]>>>>servico.em_execucao()>>>Trueservico.executado()Retorna se o servico foi ou não executado.>>>servico.executado()>>>Falseservico.pode_integrar()Retorna se o servico pode ser integrado.>>>servico.pode_integrar()>>>FalseControleMódulo responsável pelas operações no endpointcontrole.Os métodos desta classe são estáticos.Controle.get(filter_params={})filter_params:dict(opcional)>>>len(Controle.get().json())# Retorna todos os controles>>>25>>>response=Controle.get({'per_page':2})# Filtragem por limite>>>response.json()>>>[{'servico':'produtos-POMPEIA','_id':'5edfdfc57a6f51710fa6ef90','_id_servico':'5edfdfc57a6f51710fa6ef8f','executado':False},{'servico':'pedidos_gang-GANG','_id':'5edfecdb1421779a4f49cf57','_id_servico':'5edfecdb1421779a4f49cf56','executado':False}]Para mais informações dos filtros, consulteMindset Controle.Controle.limpar(id_servico, executado)id_servico:stringexecutado:bool>>>Controle.limpar(servico.get_id(),False)>>><Response[200]>StatusMódulo responsável pelas operações no endpointstatus.Os métodos desta classe são estáticos.Status.get()Retorna todos os status, ou filtrados caso ofilter_paramseja informado.filter_params:dict(opcional)>>>len(Status.get().json())# Retorna todos os status sem o filter params>>>25>>>response=Status.get({'_id_servico':servico.get_id()})>>>response.json()>>>[{'_id':'5fad5131d96a083154169a00','_id_servico':'5fad5130d96a0831541699fe','inicio_execucao':'2020-11-12T15:13:53.658000','fim_execucao':'2020-11-12T15:13:53.846000','status':'S'}]Para mais informações dos filtros, consulteMindset Status.Status.atuais():Retorna todos os status atuais registrados.>>>len(Status.atuais().json())>>>26>>>Status.atuais().json()[0]>>>{'_id':'5f2dbe80b4d3c2d250dcc06a','_id_servico':'5edfdfc57a6f51710fa6ef8f','inicio_execucao':'2020-08-07T20:50:08.518000','fim_execucao':'2020-08-07T20:51:19.542000','status':'S','servico':{'_id':'5edfdfc57a6f51710fa6ef8f','servico':'produtos-POMPEIA','hora_agendamento':'01:00:00','forcar_execucao':False,'ativo':True,'tipo':'saida'}}