40 lines
937 B
Ruby
40 lines
937 B
Ruby
|
|
module CartoDB
|
|
# This class encapsulates access to synchronization_oauths from the outside
|
|
class OAuths
|
|
|
|
# Class constructor
|
|
# @param owner_user ::User
|
|
def initialize(owner_user)
|
|
@owner = owner_user
|
|
end #initialize
|
|
|
|
def all
|
|
@owner.synchronization_oauths
|
|
end #all
|
|
|
|
# @param service string
|
|
# @return SynchronizationOauth
|
|
def select(service)
|
|
SynchronizationOauth.where(service: service, user_id: @owner.id).first
|
|
end #select
|
|
|
|
def add(service, token)
|
|
new_oauth = SynchronizationOauth.create(
|
|
user_id: @owner.id,
|
|
service: service,
|
|
token: token
|
|
)
|
|
@owner.add_synchronization_oauth(new_oauth)
|
|
self
|
|
end
|
|
|
|
def remove(service)
|
|
oauth = SynchronizationOauth.where(service: service, user_id: @owner.id).first
|
|
oauth.delete unless oauth.nil?
|
|
@owner.reload
|
|
self
|
|
end
|
|
|
|
end #OAuths
|
|
end #CartoDB |