diff --git a/src/controllers/tanksController.js b/src/controllers/tanksController.js index 26841904..6fda48a7 100644 --- a/src/controllers/tanksController.js +++ b/src/controllers/tanksController.js @@ -1567,4 +1567,56 @@ exports.motortemperature = async (req, reply) => { catch (err) { throw boom.boomify(err); } -}; \ No newline at end of file +}; + + + + +exports.readMotorStatus = async (request, reply) => { + try { + const { motor_id, action } = request.query; + + const tank = await Tank.findOne({ motor_id }); + + if (!tank) { + return reply.code(404).send({ error: 'Tank not found' }); + } + + if (action === '1') { + tank.motor_status = '1'; + } else if (action === '2') { + tank.motor_status = '0'; + } else { + return reply.code(400).send({ error: 'Invalid action' }); + } + + await tank.save(); + + return tank; + } catch (error) { + request.log.error(error); + return reply.code(500).send({ error: 'Internal Server Error' }); + } +} + +exports.writeMotorStatus = async (request, reply) => { + try { + const { motor_id, status, current, temp } = request.body; + + const tank = await Tank.findOne({ motor_id }); + + if (!tank) { + return reply.code(404).send({ error: 'Tank not found' }); + } + + tank.motor_status = status; + tank.motor_temperature = temp || tank.motor_temperature; + + await tank.save(); + + return tank; + } catch (error) { + request.log.error(error); + return reply.code(500).send({ error: 'Internal Server Error' }); + } +} \ No newline at end of file diff --git a/src/routes/tanksRoute.js b/src/routes/tanksRoute.js index 74908da0..a0878b2d 100644 --- a/src/routes/tanksRoute.js +++ b/src/routes/tanksRoute.js @@ -686,6 +686,72 @@ module.exports = function (fastify, opts, next) { }); + + + + fastify.post('/api/motor/write', { + schema: { + tags: ["Tank"], + description: "This is to Write the motor status", + summary: "This is to Write the motor status", + body: { + type: 'object', + required: ['motor_id', 'status'], + properties: { + motor_id: { type: 'string' }, + status: { type: 'string', enum: ['on', 'off'] }, + current: { type: 'string' }, + temp: { type: 'string' }, + }, + }, + // response: { + // 200: { + // type: 'object', + // properties: { + // // Define your response properties here + // motor_id: { type: 'string' }, + // status: { type: 'string' }, + // current: { type: 'string' }, + // temp: { type: 'string' }, + // // Add other properties as needed + // }, + // }, + // }, + }, + handler: tanksController.writeMotorStatus + + }); + + + fastify.get('/api/motor/read', { + schema: { + tags: ["Tank"], + description: "This is to Read the motor status", + summary: "This is to Read the motor status", + querystring: { + type: 'object', + properties: { + motor_id: { type: 'string' }, + action: { type: 'string', enum: ['1', '2'] }, + }, + required: ['motor_id', 'action'], + }, + // response: { + // 200: { + // type: 'object', + // properties: { + // // Define your response properties here + // motor_id: { type: 'string' }, + // motor_status: { type: 'string' }, + // motor_speed: { type: 'string' }, + // motor_temperature: { type: 'string' }, + // // Add other properties as needed + // }, + // }, + // }, + }, + handler: tanksController.readMotorStatus + }); next(); }