Jean Privat [Thu, 1 Sep 2016 01:53:16 +0000 (21:53 -0400)]
Merge: app::audio: remove deprecated services and other minor improvements
This PR removes the old `load_sound` and `load_music` services, they were replaced by lazy loading services a while back. The new services are more in line with the other asset loading services from `gamnit`.
There are also other general but minor improvements: doc updates, better names for a param and an attribute, less warnings, less casts, more consistent error messages and easier debugging.
Pull-Request: #2300
Reviewed-by: Jean Privat <jean@pryen.org>
Jean Privat [Thu, 1 Sep 2016 01:53:15 +0000 (21:53 -0400)]
Merge: typing: Fix minor mistakes in documentation
Signed-off-by: Jean-Christophe Beaupré <jcbrinfo@users.noreply.github.com>
Pull-Request: #2301
Jean Privat [Thu, 1 Sep 2016 01:53:15 +0000 (21:53 -0400)]
Merge: json::serialization: don't raise errors on missing attributes with default values
This PR fits in the ongoing work to improve deserializing from plain JSON objects.
The JSON deserialization engine no longer raises errors on missing attributes when a default value is available. Attributes may be missing because the JSON object come from a third-party API or
when loading serialized data from a previous version of the software. Default values include simple default values (`var x = 4`), lazy attributes and nullable types (which are set to `null`). This does not yet include `optional` attributes, more work would be needed.
The test/example can be activated when #2296 is fixed.
Pull-Request: #2302
Reviewed-by: Jean Privat <jean@pryen.org>
Reviewed-by: Alexandre Terrasa <alexandre@moz-code.org>
Jean Privat [Thu, 1 Sep 2016 01:53:14 +0000 (21:53 -0400)]
Merge: nitweb: light responses
Nitweb was returning insane amount of data (~2mo of json by request). The new version (http://nitweb.moz-code.org/) is a little more perf.
Pull-Request: #2303
Reviewed-by: Jean Privat <jean@pryen.org>
Alexandre Terrasa [Thu, 25 Aug 2016 05:54:30 +0000 (01:54 -0400)]
nitweb: fix linearization responses
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Alexandre Terrasa [Thu, 25 Aug 2016 05:46:05 +0000 (01:46 -0400)]
nitweb: use model_json `full_json`
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Alexandre Terrasa [Thu, 25 Aug 2016 05:45:50 +0000 (01:45 -0400)]
src/model: split model json into short and full json
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Alexis Laferrière [Tue, 30 Aug 2016 14:00:44 +0000 (10:00 -0400)]
tests: udate JSON tests
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
Alexis Laferrière [Tue, 30 Aug 2016 13:04:05 +0000 (09:04 -0400)]
json::serialization: document reading from JSON with missing attributes
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
Alexis Laferrière [Tue, 30 Aug 2016 13:14:19 +0000 (09:14 -0400)]
frontend/serialization: missing nullable attribute are set to null
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
Alexis Laferrière [Tue, 30 Aug 2016 02:32:44 +0000 (22:32 -0400)]
serialization: don't throw missing attribute error if there is a default value
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
Alexis Laferrière [Tue, 30 Aug 2016 13:37:25 +0000 (09:37 -0400)]
frontend/serialization: leave missing attributes to their default value
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
Alexis Laferrière [Tue, 30 Aug 2016 02:29:30 +0000 (22:29 -0400)]
json::serialization: engines report when an attributes is missing
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
Alexis Laferrière [Tue, 30 Aug 2016 02:30:12 +0000 (22:30 -0400)]
frontend/serialization: remove generated documentation
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
Alexis Laferrière [Fri, 26 Aug 2016 17:02:47 +0000 (13:02 -0400)]
modelize: precise in `has_value` doc the link with `is_lazy`
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
Jean-Christophe Beaupré [Mon, 29 Aug 2016 15:33:21 +0000 (11:33 -0400)]
typing: Fix minor mistakes in documentation
Signed-off-by: Jean-Christophe Beaupré <jcbrinfo@users.noreply.github.com>
Alexis Laferrière [Sun, 28 Aug 2016 13:55:46 +0000 (09:55 -0400)]
android::audio: remove indirection to sounds.add
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
Alexis Laferrière [Sun, 28 Aug 2016 13:11:46 +0000 (09:11 -0400)]
android::audio: revamp param and doc of `load_name`
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
Alexis Laferrière [Sun, 28 Aug 2016 13:11:04 +0000 (09:11 -0400)]
app::audio: rename `name` to `path`
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
Alexis Laferrière [Sun, 28 Aug 2016 13:05:58 +0000 (09:05 -0400)]
app::audio: update doc
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
Alexis Laferrière [Sun, 28 Aug 2016 13:02:37 +0000 (09:02 -0400)]
android::audio: print errors at loading sounds
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
Alexis Laferrière [Sun, 28 Aug 2016 13:01:17 +0000 (09:01 -0400)]
app::audio: drop the old load_sound and load_music
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
Jean Privat [Fri, 26 Aug 2016 21:09:29 +0000 (17:09 -0400)]
Merge: serialization: fix a bug, improve doc and clean weird condition
Pull-Request: #2297
Reviewed-by: Jean Privat <jean@pryen.org>
Jean Privat [Fri, 26 Aug 2016 21:09:28 +0000 (17:09 -0400)]
Merge: Mkdir fix
Calling `String::mkdir` on a path might produce errors when part of the path already existed.
This PR fixes this behaviour.
Pull-Request: #2298
Reviewed-by: Jean Privat <jean@pryen.org>
Lucas Bajolet [Fri, 26 Aug 2016 20:13:42 +0000 (16:13 -0400)]
lib/core: `String::mkdir` will only produce an error when the complete path already exists
Signed-off-by: Lucas Bajolet <r4pass@hotmail.com>
Lucas Bajolet [Fri, 26 Aug 2016 20:07:55 +0000 (16:07 -0400)]
lib/core: Make `file_exists` a `Text` function instead of `String`
Signed-off-by: Lucas Bajolet <r4pass@hotmail.com>
Alexis Laferrière [Fri, 26 Aug 2016 17:03:17 +0000 (13:03 -0400)]
lib/serialization: better doc for `AttributeTypeError`
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
Alexis Laferrière [Fri, 26 Aug 2016 17:10:41 +0000 (13:10 -0400)]
binary::serialization: fix if condition
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
Alexis Laferrière [Fri, 26 Aug 2016 17:06:10 +0000 (13:06 -0400)]
frontend/serialization: fix skipping type check for `nullable Object` attr
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
Jean Privat [Fri, 26 Aug 2016 16:42:24 +0000 (12:42 -0400)]
Merge: modelize_property: Promote `refine-type` to an error
Signed-off-by: Jean-Christophe Beaupré <jcbrinfo@users.noreply.github.com>
Pull-Request: #2287
Reviewed-by: Jean Privat <jean@pryen.org>
Jean Privat [Fri, 26 Aug 2016 16:42:23 +0000 (12:42 -0400)]
Merge: Beef up github merge
The tool was fragile, crappy, and very limited.
Now it is still fragile, crappy but less limited.
A lot of new features:
* can work on other repositories than nitlang/nit
* can choose what query to list (eg label)
* fixed status info, and we can filter on it also
* can merge automatically
* and ~~much~~ some more.
All these improvement are used to enable the automatic construction of a `next` branch based on PR with some characteristics.
Pull-Request: #2293
Reviewed-by: Alexis Laferrière <alexis.laf@xymus.net>
Jean Privat [Fri, 26 Aug 2016 16:42:23 +0000 (12:42 -0400)]
Merge: json::serialization: fix reading attributes from non-objects
This error could arise when parsing invalid JSON strings (or non-object JSON values) and skipping the call to `deserialize`.
See @privat comment in #2291.
Pull-Request: #2295
Reviewed-by: Jean Privat <jean@pryen.org>
Reviewed-by: Lucas Bajolet <r4pass@hotmail.com>
Jean Privat [Fri, 26 Aug 2016 01:38:10 +0000 (21:38 -0400)]
github_merge: add --status to filter out PR without success
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Fri, 26 Aug 2016 01:33:05 +0000 (21:33 -0400)]
github_merge: use combined status (and be more useful)
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Fri, 26 Aug 2016 01:12:43 +0000 (21:12 -0400)]
github_merge: add option --all to merge all PR
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Fri, 26 Aug 2016 01:04:21 +0000 (21:04 -0400)]
github_merge: skip issues (not PR)
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Fri, 26 Aug 2016 01:02:59 +0000 (21:02 -0400)]
github_merge: add options
Signed-off-by: Jean Privat <jean@pryen.org>
Alexis Laferrière [Fri, 26 Aug 2016 14:51:51 +0000 (10:51 -0400)]
json::serialization: fix reading attributes from non-objects
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
Jean Privat [Fri, 26 Aug 2016 14:07:46 +0000 (10:07 -0400)]
Merge: Tools use model index
Add `model_index` inside `model_view` so importing `model_index` automatically provide an index within the view. Also migrate documentation tools to model index.
### nitx
Model index is used to search mentities in commands (like `Array`, or `doc: Array`)
Improvement: nitx can no suggest entities if nothing was found.
### nitdoc
Model index is used to render doc commands in README files (like `[[list: Array]]`, or `[[graph: Array]]`)
Improvements:
* user can use `name` or `full_name` to locate entities
* nitdoc check and suggest errors
* nitdoc check and display short name conflicts
### nitweb
Model index is used to render doc down inputs and benefits now from the same improvements than nitdoc (but with a different implementation).
Futur PR will migrate the quick search engine.
Pull-Request: #2290
Reviewed-by: Jean Privat <jean@pryen.org>
Jean Privat [Fri, 26 Aug 2016 14:07:45 +0000 (10:07 -0400)]
Merge: pipeline: Introduce `Iterator2`
Add a generalization of `PipeJoin`.
Signed-off-by: Jean-Christophe Beaupré <jcbrinfo@users.noreply.github.com>
Pull-Request: #2292
Reviewed-by: Jean Privat <jean@pryen.org>
Jean Privat [Fri, 26 Aug 2016 00:20:52 +0000 (20:20 -0400)]
githumerge: skip if already merged
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Fri, 26 Aug 2016 00:20:29 +0000 (20:20 -0400)]
github_merge: accept more than one argument
Signed-off-by: Jean Privat <jean@pryen.org>
Jean-Christophe Beaupré [Thu, 25 Aug 2016 20:59:34 +0000 (16:59 -0400)]
pipeline: Introduce `Iterator2`
Add a generalization of `PipeJoin`.
Signed-off-by: Jean-Christophe Beaupré <jcbrinfo@users.noreply.github.com>
Alexandre Terrasa [Thu, 25 Aug 2016 19:14:04 +0000 (15:14 -0400)]
nitweb: doc_down use model_index
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Alexandre Terrasa [Thu, 25 Aug 2016 06:53:24 +0000 (02:53 -0400)]
src/model: remove useless services from model_view
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Alexandre Terrasa [Thu, 25 Aug 2016 06:53:05 +0000 (02:53 -0400)]
nitdoc: use model index
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Alexandre Terrasa [Thu, 25 Aug 2016 06:52:42 +0000 (02:52 -0400)]
nitx: use model index
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Alexandre Terrasa [Thu, 25 Aug 2016 06:52:17 +0000 (02:52 -0400)]
src/model: associate model index and model view
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Jean Privat [Thu, 25 Aug 2016 17:16:53 +0000 (13:16 -0400)]
Merge: Nitweb errors
Better error handling for the nitweb API:
* the API catches all unmatched `/api/*` requests and display a JSON error. Example here: http://nitweb.moz-code.org/api/foo
* better error messages (in JSON) for all API handlers. One example here: http://nitweb.moz-code.org/api/entity/foo
Also one change in the frontend that displays 404 not found pages: http://nitweb.moz-code.org/foo
Pull-Request: #2289
Reviewed-by: Jean Privat <jean@pryen.org>
Jean Privat [Thu, 25 Aug 2016 17:16:50 +0000 (13:16 -0400)]
Merge: lib/github: make `PullRef::repo` nullable.
Since repos can be deleted, the reference can be null.
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Pull-Request: #2288
Reviewed-by: Jean Privat <jean@pryen.org>
Jean Privat [Thu, 25 Aug 2016 13:21:21 +0000 (09:21 -0400)]
Merge: lib/popcorn: introduce PopTracker
## Popcorn web tracker
Easy and ready to use web tracker you can apply to your popcorn application.
The only thing you have to do is to use the tracker in your app routes:
~~~nit
var config = new AppConfig
var app = new App
app.use("/", new HomeHandler)
app.use("/products", new ProductsHandler)
app.use("customers/", new CustomersHandler)
app.use_after("/*", new PopTracker(config)) # tracker listens to /*
~~~
You can also use multiple tracker at once on different route.
All the data will be aggregated for you.
~~~nit
app.use_after("/api/*", new PopTracker(config))
app.use_after("/admin/*", new PopTracker(config))
~~~
To retrieve your tracker data use the `PopTrackerAPI` which serves the tracker
data in JSON format.
~~~nit
app.use("/api/tracker_data", new PopTrackerAPI(config))
~~~
Here some demo of what can be done when using the data:
![image](https://cloud.githubusercontent.com/assets/583144/
17920422/
67024ec2-69a2-11e6-912d-
d3627a888fff.png)
![image](https://cloud.githubusercontent.com/assets/583144/
17920427/
702ef518-69a2-11e6-8e42-
6461eeb405e5.png)
![image](https://cloud.githubusercontent.com/assets/583144/
17920448/
9219ee44-69a2-11e6-8b47-
d7cd6929ce39.png)
![image](https://cloud.githubusercontent.com/assets/583144/
17920464/
aca53cdc-69a2-11e6-9118-
5f7e8e205b3b.png)
More here: http://nitweb.moz-code.org/traffic
Pull-Request: #2286
Reviewed-by: Jean Privat <jean@pryen.org>
Alexandre Terrasa [Thu, 25 Aug 2016 04:48:31 +0000 (00:48 -0400)]
nitweb: front end display 404 error
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Alexandre Terrasa [Thu, 25 Aug 2016 04:45:03 +0000 (00:45 -0400)]
nitweb: catch 404 errors from /api/*
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Alexandre Terrasa [Thu, 25 Aug 2016 04:44:43 +0000 (00:44 -0400)]
nitweb: better error responses from API
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Alexandre Terrasa [Thu, 25 Aug 2016 04:43:15 +0000 (00:43 -0400)]
nitweb: merge ModelHandler and APIHandler
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Alexandre Terrasa [Thu, 25 Aug 2016 04:36:22 +0000 (00:36 -0400)]
nitweb: split APIRouter in modules
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Alexandre Terrasa [Thu, 25 Aug 2016 04:23:43 +0000 (00:23 -0400)]
nitweb: move catalog to config
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Alexandre Terrasa [Thu, 25 Aug 2016 00:59:59 +0000 (20:59 -0400)]
lib/github: make `PullRef::repo` nullable.
Since repos can be deleted, the reference can be null.
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Jean Privat [Wed, 24 Aug 2016 18:02:48 +0000 (14:02 -0400)]
Merge: Model index
## Search things from the Model
ModelIndex allows you to index mentities then retrieve them by their `name`
or `full_name`.
It offers a set of `find_*` methods that can be used to match queries
against entities name.
Because each use is different, ModelIndex only provide base raw search services.
All of them return IndexMatches that can be ordered and filtered by the client.
## Indexing mentities
Before searching something from the ModelIndex, you have to index it.
Use the `ModelIndex::index` method to do that:
~~~nit
var index = new ModelIndex
for mentity in model.private_view.mentities do
index.index(mentity)
end
~~~
## Search mentities
You can then run queries on the ModelIndex:
~~~nit
for res in index.find("Array").limit(10) do
print res
end
~~~
## Examples
Here some examples of how you can use the ModelIndex.
### Smart type prediction
Use ModelIndex to implement a smart prediction system based on the typed prefix:
~~~nit
var index = new ModelIndex
for mentity in model.private_view.mentities do
# We don't really care about definitions
if mentity isa MClassDef or mentity isa MPropDef then continue
index.index(mentity)
end
var typed_prefix = "Arr"
for res in index.find_by_name_prefix(typed_prefix).
uniq. # keep only the best ranked mentity
limit(5). # limit to ten results
sort(new VisibilityComparator, new NameComparator) do # order by visibility then name
print res
end
~~~
Will output something like:
~~~raw
Array (1)
ArraySet (2)
ArrayMap (3)
ArrayCmp (4)
ArrayMapKeys (5)
~~~
### Method autocompletion
Find methods from a class full_name:
~~~nit
var class_full_name = "core::Array"
for res in index.find_by_full_name_prefix("{class_full_name}::").
uniq. # keep only the best ranked mentity
sort(new VisibilityComparator). # put private in the bottom of the list
limit(5). # limit to ten results
sort(new FullNameComparator) do # order by lexicographic order
print res
end
~~~
Will output something like:
~~~raw
* (2)
+ (1)
filled_with (5)
from (3)
with_items (4)
~~~
### Name typo detection and suggestion
Detect unknown names and suggest corrections:
~~~nit
var name = "Zrray"
if index.find_by_name_prefix(name).is_empty then
printn "`{name}` not found, did you mean: "
printn index.find_by_name_similarity(name).sort(new ScoreComparator).limit(2).join(" or ")
print "?"
end
~~~
Will output something like:
~~~raw
`Zrray` not found, did you mean: Array (1) or array (1)?
~~~
The next version of Nitweb will use ModelIndex for the search field. Demo here: http://nitweb.moz-code.org/
Pull-Request: #2280
Reviewed-by: Jean Privat <jean@pryen.org>
Alexandre Terrasa [Thu, 18 Aug 2016 02:04:44 +0000 (22:04 -0400)]
lib/popcorn: introduce PopTracker
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Jean Privat [Tue, 23 Aug 2016 13:37:46 +0000 (09:37 -0400)]
Merge: modelize_property: Remove a unnecessary pre-condition
Signed-off-by: Jean-Christophe Beaupré <jcbrinfo@users.noreply.github.com>
Pull-Request: #2285
Reviewed-by: Jean Privat <jean@pryen.org>
Jean Privat [Tue, 23 Aug 2016 13:37:44 +0000 (09:37 -0400)]
Merge: nitunit: import frontend
So the tests can use annotations and other things introduced in compiler phases.
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Pull-Request: #2283
Reviewed-by: Jean Privat <jean@pryen.org>
Alexandre Terrasa [Mon, 22 Aug 2016 23:26:58 +0000 (19:26 -0400)]
tests: test ModelIndex
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Alexandre Terrasa [Mon, 22 Aug 2016 18:20:57 +0000 (14:20 -0400)]
nitunit: import frontend
So the tests can use annotations and other things introduced in compiler phases.
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Alexandre Terrasa [Fri, 19 Aug 2016 06:03:02 +0000 (02:03 -0400)]
src/model: introduce ModelIndex
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Alexandre Terrasa [Fri, 19 Aug 2016 06:02:33 +0000 (02:02 -0400)]
tries: use breadth first collect
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Jean Privat [Sat, 20 Aug 2016 01:10:19 +0000 (21:10 -0400)]
Merge: lib/github: fix load issue comments and issue pull request
Fix the wrong url in issue comment.
Also set the `Issue::is_pull_request` value with custom deserialization.
Pull-Request: #2282
Reviewed-by: Jean Privat <jean@pryen.org>
Jean Privat [Sat, 20 Aug 2016 01:10:13 +0000 (21:10 -0400)]
Merge: lib/popcorn: also log query string in console
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Pull-Request: #2281
Reviewed-by: Jean Privat <jean@pryen.org>
Jean Privat [Sat, 20 Aug 2016 01:10:08 +0000 (21:10 -0400)]
Merge: shibuqam: provide a basic auth web service to simplify the use of `shibuqam`
Configuring a shibboleth client is a PITA.
So why not configure it once with an simple auth service that allows servers to delegate their authentication to it?
This is the point of the new server `shibuqamoauth`.
Please review because I'm not a security expert and I do not want to get to much exploitable flaws.
Pull-Request: #2279
Reviewed-by: Alexis Laferrière <alexis.laf@xymus.net>
Reviewed-by: Jean-Philippe Caissy <jpcaissy@piji.ca>
Jean Privat [Sat, 20 Aug 2016 01:10:03 +0000 (21:10 -0400)]
Merge: lib/mongo: improve queries
Add some features to Mongo queries
Pull-Request: #2275
Reviewed-by: Jean Privat <jean@pryen.org>
Alexandre Terrasa [Fri, 19 Aug 2016 20:37:45 +0000 (16:37 -0400)]
lib/github: check if an Issue is linked to a PullRequest at deserialization time
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Alexandre Terrasa [Fri, 19 Aug 2016 20:37:21 +0000 (16:37 -0400)]
lib/github: fix issue comments loading
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Jean Privat [Fri, 19 Aug 2016 20:20:19 +0000 (16:20 -0400)]
shibuqam: provide a basic auth web service to simplify the use of `shibuqam`
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Fri, 19 Aug 2016 19:09:02 +0000 (15:09 -0400)]
shibuqam: make User serializable
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Fri, 19 Aug 2016 13:58:16 +0000 (09:58 -0400)]
popcorn: redirect uses 303 by default
Signed-off-by: Jean Privat <jean@pryen.org>
Alexandre Terrasa [Fri, 19 Aug 2016 18:25:37 +0000 (14:25 -0400)]
lib/popcorn: also log query string in console
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Alexandre Terrasa [Thu, 18 Aug 2016 01:49:46 +0000 (21:49 -0400)]
lib/mongo: introduce MongoMatch logicial expressions
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Alexandre Terrasa [Thu, 18 Aug 2016 01:48:07 +0000 (21:48 -0400)]
lib/mongo: introduce MongoMatch::regex
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Alexandre Terrasa [Thu, 18 Aug 2016 01:47:51 +0000 (21:47 -0400)]
lib/mongo: make MongoMatch::op public
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Jean-Christophe Beaupré [Thu, 18 Aug 2016 16:08:03 +0000 (12:08 -0400)]
modelize_property: Remove a unnecessary pre-condition
Signed-off-by: Jean-Christophe Beaupré <jcbrinfo@users.noreply.github.com>
Jean-Christophe Beaupré [Thu, 18 Aug 2016 15:50:27 +0000 (11:50 -0400)]
modelize_property: Promote `refine-type` to an error
Signed-off-by: Jean-Christophe Beaupré <jcbrinfo@users.noreply.github.com>
Jean Privat [Wed, 17 Aug 2016 21:50:29 +0000 (17:50 -0400)]
Merge: Nitweb clean
Cleans some misc part of Nitweb. Notable fact, replace the hover on cards by a dropdown menu with caret.
Can be seen here: http://nitweb.moz-code.org/doc/core::array
For now, the dropdown menu allows the user to swtich between signature and documentation. More contextual options in the future.
This looks quirk with the stars rating (left untouched in the new dropdown system) so still need the mouse over. Since the next PR rewrite this part, I will let this as it is.
We load the stars only when the dropdown is selected so we gain some perfs on the home page.
This PR is based on #2265
Pull-Request: #2268
Reviewed-by: Jean Privat <jean@pryen.org>
Reviewed-by: Simon Zeni <simonzeni@gmail.com>
Jean Privat [Wed, 17 Aug 2016 21:49:30 +0000 (17:49 -0400)]
Merge: Nitcorn PUT
This PR does two things:
* The first, maybe controversial, but I removed the warning printed by nitcorn on bad post format. The reason is, I am posting a lot of raw json object to my APIs (like github and other APIs work) and I'm getting this warning a lot.
The right thing to do should be to check the format depending on the request type. But the code seem old, I'm not sure I want to rewrite it.
* Second thing: parsing body when receiving PUT requests.
Review: @xymus
Pull-Request: #2272
Reviewed-by: Jean Privat <jean@pryen.org>
Reviewed-by: Jean-Philippe Caissy <jpcaissy@piji.ca>
Reviewed-by: Alexis Laferrière <alexis.laf@xymus.net>
Alexandre Terrasa [Wed, 17 Aug 2016 21:34:03 +0000 (17:34 -0400)]
nitweb: move mongo to web_base
So other modules can import the mongo configuration
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Alexandre Terrasa [Thu, 4 Aug 2016 18:45:22 +0000 (14:45 -0400)]
nitweb: index use dropdown for general menus
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Alexandre Terrasa [Thu, 4 Aug 2016 18:43:37 +0000 (14:43 -0400)]
nitweb: load ratings only when asked
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Alexandre Terrasa [Tue, 2 Aug 2016 02:44:21 +0000 (22:44 -0400)]
nitweb: add dropdown menu to cards
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Alexandre Terrasa [Tue, 2 Aug 2016 02:30:05 +0000 (22:30 -0400)]
nitweb: factorize graph directive
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Alexandre Terrasa [Tue, 2 Aug 2016 01:56:43 +0000 (21:56 -0400)]
nitweb: doc card use dropdown to switch between doc and grade
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Alexandre Terrasa [Tue, 2 Aug 2016 00:42:27 +0000 (20:42 -0400)]
nitweb/css: remove hidden overflow
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Jean Privat [Wed, 17 Aug 2016 11:22:33 +0000 (07:22 -0400)]
Merge: Popcorn clean
Just some cleaning in popcorn modules
Also introducing mongo options for pop_repos.
Pull-Request: #2266
Reviewed-by: Jean Privat <jean@pryen.org>
Alexandre Terrasa [Sun, 14 Aug 2016 22:29:09 +0000 (18:29 -0400)]
lib/popcorn: pop_repo introduce Mongo in AppConfig and AppOptions
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Alexandre Terrasa [Sun, 14 Aug 2016 22:19:43 +0000 (18:19 -0400)]
lib/popcorn: move session init to pop_auth
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Alexandre Terrasa [Sun, 14 Aug 2016 22:18:52 +0000 (18:18 -0400)]
lib/popcorn: rename `pop_middleware` into pop_logging
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Jean Privat [Tue, 16 Aug 2016 21:37:29 +0000 (17:37 -0400)]
Merge: lib/popcorn: introduce AuthHandler to check user session
### AuthHandler allows access to session user
Inherit this handler to access to session user from your custom handler.
For example, you need a profile handler that checks if the user is logged
before returning it in json format.
~~~nit
import popcorn::pop_auth
class ProfileHandler
super AuthHandler
redef fun get(req, res) do
var user = check_session_user(req, res)
if user == null then return
res.json user.json
end
end
~~~
By using `check_session_user`, we delegate to the `AuthHandler` the responsability
to set the HTTP 403 error.
We then check is the user is not null before pursuing.
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Pull-Request: #2271
Reviewed-by: Jean Privat <jean@pryen.org>
Alexandre Terrasa [Tue, 16 Aug 2016 19:53:48 +0000 (15:53 -0400)]
lib/popcorn: introduce AuthHandler to check user session
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Jean Privat [Tue, 16 Aug 2016 17:26:12 +0000 (13:26 -0400)]
Merge: remove wallet
Binary introduced by error in
840a7d2d6147a2a8ae219fa3e0f7b9dd3e5af4d5
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Pull-Request: #2270
Reviewed-by: Jean Privat <jean@pryen.org>
Jean Privat [Tue, 16 Aug 2016 17:25:58 +0000 (13:25 -0400)]
Merge: Mongo: limit queries
Add some features used to paginate results:
* allow pop repos to query with a limit and skip
* makes Pipeline API cleaner with limit and skip
* allows user to count entities from a Repo
Pull-Request: #2269
Reviewed-by: Jean Privat <jean@pryen.org>
Jean Privat [Tue, 16 Aug 2016 17:25:53 +0000 (13:25 -0400)]
Merge: lib/popcorn: add `remove_all` service to pop repos
No more to say here.
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Pull-Request: #2267
Reviewed-by: Jean Privat <jean@pryen.org>
Jean Privat [Tue, 16 Aug 2016 17:25:49 +0000 (13:25 -0400)]
Merge: lib/popcorn: introduce RepoObject in pop_repos
### Base serializable entity that can go into a JsonRepository
Provide boiler plate implementation of all object serializable to json.
`id` is used as a primary key for `find_by_id`.
Subclassing RepoObject makes it easy to create a serializable class:
~~~nit
import popcorn::pop_repos
class Album
super RepoObject
serialize
var title: String
var price: Float
end
~~~
Do not forget the `serialize` annotation else the fields will not be serialized.
It is also possible to redefine the `id` primary key to use your own:
~~~nit
import popcorn::pop_repos
class Order
super RepoObject
serialize
redef var id = "order-{get_time}"
# ...
end
~~~
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Pull-Request: #2265
Reviewed-by: Jean Privat <jean@pryen.org>