Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Interface for integration with others services #36

Closed
5 tasks
pedrommone opened this issue Nov 25, 2014 · 56 comments
Closed
5 tasks

Interface for integration with others services #36

pedrommone opened this issue Nov 25, 2014 · 56 comments
Assignees
Labels
Feature Help Wanted Issues that need more help
Milestone

Comments

@pedrommone
Copy link

Would be nice if we can receive a status from HipChat or w/e.

  • Hipchat
  • SMS (Twilio)
  • WhatsApp
  • Slack
  • Email (subscribers).
@manavo
Copy link
Contributor

manavo commented Nov 25, 2014

You mean update a status from HipChat? Or post a notification to HipChat when something changes?

@pedrommone
Copy link
Author

Post notifications into HipChat/Send email/SMS/WhatsApp/Facebook. W/e, just make an interface to notify others services.

@pedrommone pedrommone changed the title Alerts for HipChat Interface for integration with others services Nov 25, 2014
@pedrommone
Copy link
Author

What does "enjoy" means? Haha. Btw, we can make it using events of laravel. Bind an listener event for new issues, closed issues and status updates.

@jbrooksuk
Copy link
Member

The enjoy label is something that anybody could mess with. It's unassigned, not necessarily high priority, but if someone gets it in, then awesome.

@jbrooksuk
Copy link
Member

@manavo did you decide on how you want third-parties to integrate via the API? Basic Auth is ok for users, but a service should be given a unique token IMHO.

@jbrooksuk
Copy link
Member

SMS could be provided with a Twilio adapter.

@pedrommone
Copy link
Author

We can use even an Whatsapp API :)

@jbrooksuk
Copy link
Member

@pedrommone I've updated your issue to include a task list

@manavo
Copy link
Contributor

manavo commented Nov 26, 2014

Well, do we actually need the 3rd party to authenticate? It's the other way around, we're posting to them.

So we'd need a way to save the auth tokens and endpoints of each service we can notify. But not a way for them to authenticate.

Or have I understood this wrong?

@jbrooksuk
Copy link
Member

That's a very good point actually. A services table which stores the required information to connect to each service would be good.

@manavo
Copy link
Contributor

manavo commented Nov 26, 2014

Yep, something along those lines. Just gets annoying because each one has different parameters

@jbrooksuk
Copy link
Member

See #44

@Ehesp
Copy link
Contributor

Ehesp commented Nov 26, 2014

One way of doing it... In the settings table you have enabled/disabled fields for each service... So lets say WhatsApp is enabled.

In your services table, just have a column which is a hashed serialized array of the options for each service. This way, you can create an interface which each service must follow, and one such method could be connect() and you simply pass in each enabled service's details from the table. Something along them lines....

@jbrooksuk
Copy link
Member

@Ehesp that's exactly what I did in the pull request I've just made.

@Ehesp
Copy link
Contributor

Ehesp commented Nov 26, 2014

Great minds....

@jbrooksuk
Copy link
Member

👍

@jbrooksuk
Copy link
Member

FYI, I've not created a model until you repository changes are merged in.

@jbrooksuk
Copy link
Member

Now all we need is an abstract class for handling services, then the connectors are simply making the desired requests.

We can also cheat here as we can use events for when a model is updated. As soon as we see created, saved, updated (or whatever the event names are) we can fire off all activated services. These should be queued up though since they'd be blocking.

@jbrooksuk jbrooksuk mentioned this issue Nov 27, 2014
Closed
6 tasks
@jbrooksuk
Copy link
Member

The Service model overrides the properties attribute with a custom getter and setter. It'll automatically handle the JSON encoding and decoding when calling $service->properties - check it out.

@jbrooksuk jbrooksuk added Help Wanted Issues that need more help Enhancement and removed enjoy Enhancement labels Dec 1, 2014
@jbrooksuk
Copy link
Member

If someone wants to take this up that'd be cool. Otherwise I'll probably push it back till after the First Milestone.

@jbrooksuk jbrooksuk added this to the First Release milestone Dec 1, 2014
@efriel efriel mentioned this issue May 30, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feature Help Wanted Issues that need more help
Projects
None yet
Development

No branches or pull requests