{"id":18324817,"url":"https://github.com/luiscib3r/odoochat_flutter","last_synced_at":"2026-03-07T13:32:44.977Z","repository":{"id":115038104,"uuid":"353920886","full_name":"luiscib3r/odoochat_flutter","owner":"luiscib3r","description":"Flutter package to comunicate with Odoo Conversation module","archived":false,"fork":false,"pushed_at":"2024-01-16T03:17:27.000Z","size":424,"stargazers_count":11,"open_issues_count":1,"forks_count":6,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-20T02:33:45.595Z","etag":null,"topics":["chat","dart","flutter","odoo"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/luiscib3r.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-04-02T05:57:08.000Z","updated_at":"2025-01-28T17:55:20.000Z","dependencies_parsed_at":null,"dependency_job_id":"677355a5-4137-48aa-aba9-0372b3dd7deb","html_url":"https://github.com/luiscib3r/odoochat_flutter","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/luiscib3r/odoochat_flutter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luiscib3r%2Fodoochat_flutter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luiscib3r%2Fodoochat_flutter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luiscib3r%2Fodoochat_flutter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luiscib3r%2Fodoochat_flutter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/luiscib3r","download_url":"https://codeload.github.com/luiscib3r/odoochat_flutter/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luiscib3r%2Fodoochat_flutter/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30215679,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-07T13:25:55.541Z","status":"ssl_error","status_checked_at":"2026-03-07T13:25:38.596Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chat","dart","flutter","odoo"],"created_at":"2024-11-05T18:35:53.529Z","updated_at":"2026-03-07T13:32:44.947Z","avatar_url":"https://github.com/luiscib3r.png","language":"JavaScript","readme":"## OdooChat.\n\n### Example\n\n```dart\n// ignore_for_file: avoid_print\n\nimport 'package:odoochat/odoochat.dart';\n\nFuture\u003cvoid\u003e main(List\u003cString\u003e args) async {\n  // Init\n  final odooChat = OdooChat(\n    serverUrl: 'http://localhost:8069',\n    databaseName: 'luisciber',\n    debug: true,\n  );\n\n  // Login\n  final loginResult = await odooChat.login(\n    username: 'youruser@odoo.com',\n    password: '12345678',\n  );\n\n  print(loginResult);\n\n  // Init messaging\n  final messagingResult = await odooChat.initMessaging();\n\n  print('Current Partner: ');\n  print(messagingResult.currentPartner);\n\n  print('Channels, Private Messages, Groups: ');\n  print(messagingResult.channels);\n\n  if (messagingResult.channels.isEmpty) {\n    print('No channels found');\n    return;\n  }\n\n  // Fetch messages\n  final messages = await odooChat.fetchMessages(\n    messagingResult.channels.first.id,\n  );\n\n  print('Messages: ');\n  for (final message in messages.reversed) {\n    print(message.emailFrom);\n    print(message.author);\n    print(message.body);\n    print(message.date);\n    print('\\n');\n  }\n\n  // Send message\n  final newMessageId = await odooChat.sendMessage(\n    channelId: messagingResult.channels.first.id,\n    message: 'Test message from OdooChat Flutter',\n  );\n\n  print('New message id: $newMessageId');\n\n  // Poll\n  while (await Future\u003cbool\u003e.delayed(const Duration(seconds: 3), () =\u003e true)) {\n    final results = await odooChat.poll();\n\n    for (final result in results) {\n      print('\\n');\n      switch (result.message) {\n        case PollMessageMessage(data: final Message data):\n          print('Is a message');\n          print(data);\n        case PollMessageChannel(data: final Channel data):\n          print('Is a new channel notification');\n          print(data);\n        case PollMessageInfo(data: final MessageInfo data):\n          print('Is an info message'); // ex: typing, or bot messages\n          switch (data) {\n            case MessageInfoTyping(\n                isTyping: final bool isTyping,\n                partnerId: final int partnerId,\n                partnerName: final String partnerName,\n              ):\n              print('Partner id: $partnerId');\n              print('Partner name: $partnerName');\n              print('Is typing: $isTyping');\n\n            case MessageInfoTransient(\n                body: final String body,\n              ):\n              print('Transient message: $body');\n          }\n        case null:\n          print('Empty poll result');\n      }\n    }\n  }\n}\n```\n### Download attachments\n\n```dart\n// Get attachment in bytes\nfinal bytes = odooChat.getAttachment(attachmentId)\n```\n\n### Note\n\nIt is recommended to use isolates to run the chat poll.\n\nReview an [application example](https://github.com/luiscib3r/odoochat_flutter/tree/main/example/odoochat_example).\n\n### Flutter Web\n\nPlease note that currently, this package does not support Flutter Web. However, work is in progress to make it compatible with web as well.","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluiscib3r%2Fodoochat_flutter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fluiscib3r%2Fodoochat_flutter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluiscib3r%2Fodoochat_flutter/lists"}