@@ -4,23 +4,80 @@ Adapter = Ember.RESTAdapter.extend
44
55unless window .TravisApplication
66 window .TravisApplication = Em .Application .extend (Ember .Evented ,
7- LOG_TRANSITIONS : true
87 authStateBinding : ' auth.state'
98 signedIn : (-> @ get (' authState' ) == ' signed-in' ).property (' authState' )
109
1110 setup : ->
12- modelClasses = [Travis .User , Travis .Build , Travis .Job , Travis .Repo ]
11+ modelClasses = [Travis .User , Travis .Build , Travis .Job , Travis .Repo , Travis . Commit , Travis . Worker , Travis . Account , Travis . Broadcast ]
1312 modelClasses .forEach (klass) ->
14- klass .adapter = Adapter .create ()
13+ klass .adapter = Adapter .extend (
14+ findMany : (klass , records , ids ) ->
15+ debugger
16+ console .log ' findMany' , klass+ ' ' , records+ ' ' , ids
17+
18+ mappings :
19+ broadcasts : Travis .Broadcast
20+ repositories : Travis .Repo
21+ repository : Travis .Repo
22+ repos : Travis .Repo
23+ repo : Travis .Repo
24+ builds : Travis .Build
25+ build : Travis .Build
26+ commits : Travis .Commit
27+ commit : Travis .Commit
28+ jobs : Travis .Job
29+ job : Travis .Job
30+ account : Travis .Account
31+ accounts : Travis .Account
32+ worker : Travis .Worker
33+ workers : Travis .Worker
34+
35+ buildURL : ->
36+ @_super .apply (this , arguments ).replace (/ \. json$ / , ' ' )
37+
38+ didFind : (record , id , data ) ->
39+ @ sideload (record .constructor , data)
40+ @ _super (record, id, data)
41+
42+ didFindAll : (klass , records , data ) ->
43+ @ sideload (klass, data)
44+ @ _super (klass, records, data)
45+
46+ didFindQuery : (klass , records , params , data ) ->
47+ @ sideload (klass, data)
48+ @ _super (klass, records, params, data)
49+
50+ didCreateRecord : (record , data ) ->
51+ @ sideload (record .constructor , data)
52+ @ _super (record, data)
53+
54+ didSaveRecord : (record , data ) ->
55+ @ sideload (record .constructor , data)
56+ @ _super (record, data)
57+
58+ didDeleteRecord : (record , data ) ->
59+ @ sideload (record .constructor , data)
60+ @ _super (record, data)
61+
62+ sideload : (klass , data ) ->
63+ for name, records of data
64+ records = [records] unless Ember .isArray (records)
65+
66+ # we need to skip records of type, which is loaded by adapter already
67+ if (type = @mappings [name]) != klass
68+ for record in records
69+ type .findFromCacheOrLoad (record)
70+ ).create ()
1571
1672 Travis .User .url = ' /users'
1773 Travis .Build .url = ' /builds'
1874 Travis .Job .url = ' /jobs'
1975 Travis .Repo .url = ' /repos'
2076 Travis .Build .url = ' /builds'
2177
22- # TODO: fix
23- # @store.loadMany(Travis.Sponsor, Travis.SPONSORS)
78+
79+ Travis .SPONSORS .forEach (sponsor) ->
80+ Travis .Sponsor .findFromCacheOrLoad (sponsor)
2481
2582 @slider = new Travis.Slider ()
2683 @pusher = new Travis.Pusher (Travis .config .pusher_key ) if Travis .config .pusher_key
0 commit comments